输出参数未返回

Mar*_*ton 3 sql-server

为什么这个脚本会返回一对空值?我正在使用SQL Server 2008,脚本在MSSMS中运行.

CREATE PROCEDURE proc_Test
    (
    @Input int,
    @Out1 int OUTPUT,
    @Out2 varchar(10) OUTPUT
    )

AS

BEGIN
    SET NOCOUNT OFF
    SET @Out1 = 100 + @Input
    SET @Out2 = 'result=' + CONVERT(varchar,@Out1)
    RETURN

END

GO

DECLARE @Out1 int, @Out2 varchar(10)
exec proc_Test  @Input=1, @Out1=@Out1, @Out2=@Out2
select @Out1, @Out2
Run Code Online (Sandbox Code Playgroud)

Mit*_*eat 5

您需要将vars指定为输出:

DECLARE @Out1 int, @Out2 varchar(10) 
exec proc_Test @Input = 1, @Out1 = @Out1 output, @Out2 = @Out2 output
select @Out1, @Out2 
Run Code Online (Sandbox Code Playgroud)

作为一个小问题,尽量不要将接收结果的变量命名为参数变量; 它变得太混乱了.