Хранимая процедура SQL Server захватывает возвращаемое значение в T-SQL - PullRequest
16 голосов
/ 17 декабря 2011

У меня есть хранимая процедура SQL Server; Мне нужно захватить возвращаемое значение из хранимой процедуры. Это правильный способ сделать это?

  declare valback varchar(30)
  set valback = exec storeproc1 

В этом случае storeproc1 - это моя хранимая процедура.

Ответы [ 2 ]

36 голосов
/ 17 декабря 2011

Для начала используйте правильный синтаксис T-SQL:

declare @valback int;
exec @valback = storeproc1;

Единственный тип возврата, допустимый для хранимой процедуры, - int.Хранимые процедуры возвращают статус через оператор return.

У меня почему-то возникает ощущение, что вы действительно хотите что-то еще, а именно: иметь в процедуре OUTPUT параметр :

declare @valback varchar(30);
exec storedproc1 @valback OUTPUT;

или захватить набор результатов процедурычерез INSERT ... EXEC.См. Как обмениваться данными между хранимыми процедурами .

1 голос
/ 17 декабря 2011

Правильный синтаксис:

DECLARE @valback VARCHAR(30) 
EXEC @valback = storeproc1  

Согласно документации:

http://msdn.microsoft.com/en-us/library/ms188332.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...