it-swarm-pt.tech

Procedimento armazenado do SQL Server captura o valor de retorno em T-SQL

Eu tenho um procedimento armazenado do SQL Server; Eu preciso capturar o valor de retorno do procedimento armazenado. Essa é a maneira correta de fazer isso?

  declare valback varchar(30)
  set valback = exec storeproc1 

Nesse caso, storeproc1 é o meu procedimento armazenado.

16
Nate Pet

Para começar, use a sintaxe apropriada do T-SQL:

declare @valback int;
exec @valback = storeproc1;

O único tipo de retorno permitido para um procedimento armazenado é int. Os procedimentos armazenados retornam o status por meio da instrução return .

De alguma forma, sinto que você realmente deseja outra coisa, a saber: ter um parâmetro OUTPUT no procedimento:

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

ou capture o resultado do procedimento definido por INSERT ... EXEC. Veja Como compartilhar dados entre procedimentos armazenados .

36
Remus Rusanu

A sintaxe correta é:

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

Conforme a documentação:

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

1
Martin