【发布时间】:2012-02-15 09:25:44
【问题描述】:
我试图找出在另一个存储过程中执行存储过程时如何返回存储过程的输出参数:
CREATE PROCEDURE Test1
EXEC SpWithOutputID -- Outputs @ID
SELECT @ID as ID -- Output @ID now being used in this SP
这当然不是我的代码,只是一个例子,是否可以这样做?
示例 2: --这里@ID返回Null
CREATE PROCEDURE Test1
As
DECLARE @ID int
EXEC SpWithOutputID @ID = @ID OUTPUT -- Outputs @ID
SELECT @ID as ID -- Output @ID now being used in this SP
示例 3: --这里@ID返回一个Int
CREATE PROCEDURE Test1
As
EXEC SpWithOutputID -- Outputs @ID
【问题讨论】:
-
您需要澄清...
SpWithOutputID中的@ID是实际的OUTPUT参数,还是像最后一行一样选择?差别很大,术语很重要。 -
sp 没有
OUTPUT参数,但它仍然输出一个值,所以我想我必须给 SpWithOutputID 一个输出参数,我明白了。再次感谢亚伦,没有你我该怎么办..? =] -
您需要显示您希望在
SpWithOutputID中运行的代码。您还应该澄清这个问题,因为您的大多数读者对output param的定义不同。如果您需要返回单个标量值,那么您应该让内部 SP 返回一个OUTPUT参数,而不是结果集。
标签: sql-server sql-server-2008 tsql