我有一个SQL Server存储过程;我需要从存储过程中捕获返回值。这是做这件事的正确方法吗?SQL Server存储过程在T-SQL中捕获返回值
declare valback varchar(30)
set valback = exec storeproc1
在这种情况下,storeproc1
是我的存储过程。
我有一个SQL Server存储过程;我需要从存储过程中捕获返回值。这是做这件事的正确方法吗?SQL Server存储过程在T-SQL中捕获返回值
declare valback varchar(30)
set valback = exec storeproc1
在这种情况下,storeproc1
是我的存储过程。
开始,使用适当的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。
正确的语法是:
DECLARE @valback VARCHAR(30)
EXEC @valback = storeproc1
按照文档:
您需要使用`@ valback`来表示它是一个变量。 – JNK 2011-12-16 21:53:30