我有一个SQL Server存储过程;我需要从存储过程中捕获返回值。这是正确的做法吗?
declare valback varchar(30)
set valback = exec storeproc1
在这种情况下,storeproc1
是我的存储过程。
答案 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
根据文件: