2011-12-16 16 views
15

Ho una stored procedure SQL Server; Ho bisogno di catturare il valore di ritorno dalla stored procedure. È questo il modo corretto di farlo?SQL Server Stored procedure acquisizione valore restituito in T-SQL

declare valback varchar(30) 
    set valback = exec storeproc1 

In questo caso, storeproc1 è la mia stored procedure.

+1

È necessario utilizzare '@ valback' per indicare che è una variabile. – JNK

+0

Il tuo SP ha un parametro OUTPUT che stai cercando di recuperare o il tuo SP esegue qualche tipo di inserimento, aggiornamento o eliminazione che vuoi semplicemente controllare per vedere se ha avuto successo? –

risposta

33

Per iniziare, l'uso corretto della sintassi T-SQL:

declare @valback int; 
exec @valback = storeproc1; 

L'unico ritorno il tipo consentito per una stored procedure è int. Le stored procedure restituiscono lo stato tramite l'istruzione return.

qualche modo ho la sensazione che si vuole veramente qualcosa di diverso, vale a dire: di avere un OUTPUT parameter nella procedura:

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

o catturare il risultato procedura di via INSERT ... EXEC. Vedi How to Share Data Between Stored Procedures.

Problemi correlati