Sql 将过程的返回值存储在变量中

Sql 将过程的返回值存储在变量中,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我试图在另一个过程(B)中执行一个过程(a),我想将从过程a返回的值存储在一个名为@LogId的变量中 在执行过程A之后 exec TES_usp_getnextlogid 它返回类似于 NewLogId = xxxx 我尝试在程序B中执行以下操作 declare @LogId int exec @LogId = TES_usp_getnextlogid 我的问题是,@LogId为什么不保存从TES\u usp\u getnextlogid过程返回的值 谢谢 为此使用输出参数,返回值应仅用

我试图在另一个过程(B)中执行一个过程(a),我想将从过程a返回的值存储在一个名为
@LogId
的变量中

在执行过程A之后

exec TES_usp_getnextlogid
它返回类似于

NewLogId = xxxx
我尝试在程序B中执行以下操作

declare @LogId int
exec @LogId = TES_usp_getnextlogid
我的问题是,
@LogId
为什么不保存从
TES\u usp\u getnextlogid
过程返回的值


谢谢

为此使用输出参数,返回值应仅用于返回成功/失败状态

CREATE PROCEDURE My_Outter_Proc2
AS
BEGIN
   DECLARE @NextID INT;

  EXEC TES_usp_getnextlogid @NextID OUTPUT

  EXEC My_Inner_Proc @NextID 

END

为什么不使用输出参数呢?比如在哪个过程中?很抱歉我对SQLID有点陌生这里的示例中只有一个过程。我怀疑TES_usp_getnextlogid实际上是在选择下一个日志id,而不是返回参数。您可以执行到一个临时表(有一个varchar列)中,然后从字符串中提取id,但这是一个非常好的选择。谢谢史蒂夫