Возвращаемое значение захвата хранимой процедуры SQL Server в T-SQL

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

  declare valback varchar(30)
  set valback = exec storeproc1 

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

Ответы

Ответ 1

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

declare @valback int;
exec @valback = storeproc1;

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

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

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

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