SQL Server存储过程捕获T-SQL中的返回值

时间:2011-12-16 21:50:45

标签: sql sql-server tsql

我有一个SQL Server存储过程;我需要从存储过程中捕获返回值。这是正确的做法吗?

  declare valback varchar(30)
  set valback = exec storeproc1 

在这种情况下,storeproc1是我的存储过程。

2 个答案:

答案 0 :(得分:36)

首先,使用正确的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

答案 1 :(得分:1)

正确的语法是:

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

根据文件:

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