繁体   English   中英

T-SQL存储过程将值返回到变量

[英]T-SQL Stored Procedure returned value into variable

我在MS SQL 2012 Express上有一个简单的存储过程,该存储过程返回的结果类似于:

DECLARE @value INT;
SELECT @value;

同时,我正在尝试将此存储过程称为

DECLARE @result INT;
EXEC @result = SpFoo .....

但是我从SpFoo获得的@result值为0。

如何获取存储过程返回的实际值?

谢谢

首先在您调用的sp中声明@Value作为输出参数

CREATE PROCEDURE spCallee
@Value INT Output
AS
BEGIN
    set @Value = 1

END
GO

在调用方sp中获得像这样的结果

CREATE PROCEDURE spCaller
AS
BEGIN

    declare @Result as int = 0

    EXEC spCallee @Value = @Result Output

    Select @Result
END
GO

供你参考

我知道的唯一方法是将结果放入表,然后从表中获取:

DECLARE @tmp TABLE (Result int)
DECLARE @res int

INSERT INTO @tmp
EXECUTE [Procedure]...

SELECT @res = Result
FROM @tmp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM