Sql server 无法从另一个SP调用的SP获取输出参数

Sql server 无法从另一个SP调用的SP获取输出参数,sql-server,stored-procedures,output,Sql Server,Stored Procedures,Output,我试图从另一个存储过程调用的存储过程中获取输出参数值,但没有成功。我分别设置输出参数,但它返回NULL ALTER PROCEDURE [dbo].[btn_usp_label_next_lp] @out_vchMsg NVARCHAR(30) OUTPUT, @out_vchCode NVARCHAR(30) OUTPUT AS DECLARE @v_nSysErrorNum INTEGER

我试图从另一个存储过程调用的存储过程中获取输出参数值,但没有成功。我分别设置输出参数,但它返回
NULL

ALTER PROCEDURE [dbo].[btn_usp_label_next_lp]
    @out_vchMsg                 NVARCHAR(30)    OUTPUT,
    @out_vchCode                NVARCHAR(30)    OUTPUT
AS
    DECLARE  @v_nSysErrorNum INTEGER

    EXEC usp_get_next_value_dummy 'BTN_DUMMY_LP', @out_vchCode OUTPUT, @v_nSysErrorNum OUTPUT, @out_vchMsg OUTPUT
输出参数
@out\u vchCode
始终为空,但存储过程
usp\u get\u next\u value\u dummy
填充
@out\u vchCode
。我不明白上面为什么返回空值


有谁能给我一个主意吗?

您需要将变量的作用域设置为您的过程。它们被定义为输出,但您试图将它们传递给另一个进程。我不是嵌套进程的超级粉丝,因为维护可能会变得非常糟糕,但下面是如何做到这一点的

ALTER PROCEDURE [dbo].[btn_usp_label_next_lp]
    @out_vchMsg                 NVARCHAR(30)    OUTPUT,
    @out_vchCode                NVARCHAR(30)    OUTPUT
AS
    DECLARE  @v_nSysErrorNum INTEGER
        , @vchCode NVARCHAR(30)
        , @vchMsg NVARCHAR(30)

    EXEC usp_get_next_value_dummy 'BTN_DUMMY_LP', @vchCode OUTPUT, @v_nSysErrorNum OUTPUT, @vchMsg OUTPUT

    SELECT @out_vchCode = @vchCode
        , @out_vchMsg = @vchMsg
不能复制