2011-12-16 131 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