У меня есть хранимая процедура, которая возвращает значение. Я вызываю ее из других хранимых процедур, которым необходимо получить это значение. Вызывающая хранимая процедура находится внутри транзакции, хранимая процедура, которая возвращает значение (и фактически создает значение и сохраняет его в таблице, к которой не обращается никакой другой процесс), не находится внутри своей собственной транзакции, но будет частью транзакции вызывающей стороны.
Вопрос в том, какой самый эффективный способ получить возвращаемое значение хранимой процедуры и сохранить его в переменной вызывающего процесса?
В настоящее время у меня есть следующее, и мне интересно, если это очень неэффективно?
DECLARE @tmpNewValue TABLE (newvalue int)
INSERT INTO @tmpNewValue EXEC GetMyValue
DECLARE @localVariable int
SET @localVariable = (SELECT TOP 1 newvalue FROM @tmpNewValue )
Нет ли более прямого способа сделать это? Разве это не дорогой (с точки зрения производительности) способ?
Мой сохраненный процесс не имеет выходного параметра, он просто возвращает значение. Будет ли использование выходного параметра быстрее?
Для чего я стою, я использую MS SQL Server 2005