Sql server 在存储过程中返回记录集和返回值

Sql server 在存储过程中返回记录集和返回值,sql-server,sql-server-2008,tsql,stored-procedures,Sql Server,Sql Server 2008,Tsql,Stored Procedures,我有一个存储过程,在结束之前: SELECT scope_identity() autoid RETURN 0; 然后,我有一个存储过程B,它调用A,如下所示: EXEC @idvalue = EXEC spA 我需要将自动ID值从spA输入spB 更换水疗中心不是一种选择。这可能吗?如何实现 sp工作中的所有其他内容我只是从spA而不是autoid获取返回值。请使用OUT参数,并将其传递给另一个过程。这是唯一的最佳方式选择是唯一的选择吗?如果是,则创建表xid INT;插入x EXEC d

我有一个存储过程,在结束之前:

SELECT scope_identity() autoid
RETURN 0;
然后,我有一个存储过程B,它调用A,如下所示:

EXEC @idvalue = EXEC spA
我需要将自动ID值从spA输入spB

更换水疗中心不是一种选择。这可能吗?如何实现


sp工作中的所有其他内容我只是从spA而不是autoid获取返回值。

请使用OUT参数,并将其传递给另一个过程。这是唯一的最佳方式

选择是唯一的选择吗?如果是,则创建表xid INT;插入x EXEC dbo.spA;从x中选择TOP 1@idvalue=id;因为你想返回一个标量值,所以只需要使用一个输出参数。我听说你要继承,但是@scope\u identity在这里是一个变量,而不是函数scope\u identity。我完全理解这些差异,但注意到这是一个让我感到有点奇怪的变量。讨厌以前的开发者@公平地说,添加可为null的输出参数不应破坏调用存储过程的任何现有代码。您应该在问题中说明,这就是为什么更改存储过程不是一个选项的原因-我假设您无法控制该过程或供应商策略禁止修改。是的,这似乎有点沉重,但您在更轻更好的方法上设置了障碍,即使用输出参数。最佳方法是的,唯一方法,不,正如我所说,在这个时候,这样做是不可能的。Aaron的解决方案确实满足了我的需要。