2011-12-16 177 views
15

我有一個SQL Server存儲過程;我需要從存儲過程中捕獲返回值。這是做這件事的正確方法嗎?SQL Server存儲過程在T-SQL中捕獲返回值

declare valback varchar(30) 
    set valback = exec storeproc1 

在這種情況下,storeproc1是我的存儲過程。

+1

您需要使用`@ valback`來表示它是一個變量。 – JNK 2011-12-16 21:53:30

回答

33

開始,使用適當的T-SQL語法:

declare @valback int; 
exec @valback = storeproc1; 

的唯一回報允許存儲過程的類型爲int。存儲過程通過return聲明返回狀態。

我莫名其妙地有一種感覺,你真的想要別的東西,即: 有在程序的OUTPUT parameter

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

或捕捉過程結果通過INSERT ... EXEC設置。見How to Share Data Between Stored Procedures