无法从另一个SP

时间:2015-06-09 20:37:12

标签: 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

    EXEC usp_get_next_value_dummy 'BTN_DUMMY_LP', @out_vchCode OUTPUT, @v_nSysErrorNum OUTPUT, @out_vchMsg OUTPUT

输出参数@out_vchCode始终为null,但存储过程usp_get_next_value_dummy填充@out_vchCode。我不明白为什么它在上面返回null。

有人可以给我一个想法吗?

1 个答案:

答案 0 :(得分:1)

您需要将变量限定为您的过程。它们被定义为输出,但您正在尝试将它们传递给另一个proc。我不是嵌套过程的忠实粉丝,因为维护可能会变得非常丑陋但是你可以这样做。

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