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

时间:2015-06-01 10:04:53

标签: sql-server stored-procedures sql-server-2012-express

我在MS SQL 2012 Express上有一个简单的存储过程,它返回一个结果,如:

DECLARE @value INT;
SELECT @value;

与此同时,我试图将此存储过程称为

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

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

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

由于

2 个答案:

答案 0 :(得分: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

For your reference

答案 1 :(得分:0)

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

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

INSERT INTO @tmp
EXECUTE [Procedure]...

SELECT @res = Result
FROM @tmp