2

我有两个程序PROC_APROC_B.

在这两个过程中,事务都是管理的。

PROC_B通过调用引发错误RAISEERROR并在特定条件下传递消息

RAISERROR ('Initiator is Inactive', 16, 1, 'Approve Transaction'); 

我正在执行(调用)PROC_BPROC_A现在我想得到PROC_Bin抛出的错误消息PROC_A

我怎样才能做到这一点?

4

1 回答 1

2

尝试这个:

CREATE PROCEDURE dbo.TestA
AS
BEGIN
    RAISERROR ('Initiator is Inactive', 16, 1, 'Approve Transaction'); 
END;
GO

CREATE PROCEDURE dbo.TestB
AS
BEGIN
    BEGIN TRY
    EXEC dbo.TestA;
    END TRY

    BEGIN CATCH
    SELECT ERROR_MESSAGE();
    END CATCH
END;
GO

EXEC dbo.TestB;
GO

DROP PROCEDURE dbo.TestB;
DROP PROCEDURE dbo.TestA;
于 2016-03-17T08:33:09.517 回答