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

Nat*_*Pet 16 sql t-sql sql-server

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

  declare valback varchar(30)
  set valback = exec storeproc1 
Run Code Online (Sandbox Code Playgroud)

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

Rem*_*anu 36

首先,使用正确的T-SQL语法:

declare @valback int;
exec @valback = storeproc1;
Run Code Online (Sandbox Code Playgroud)

存储过程允许的唯一返回类型是int.存储过程通过return语句返回状态.

我不知何故感觉你真的想要别的东西,即:在程序中有一个OUTPUT参数:

declare @valback varchar(30);
exec storedproc1 @valback OUTPUT;
Run Code Online (Sandbox Code Playgroud)

或通过获取程序结果集INSERT ... EXEC.请参见如何在存储过程之间共享数据.