如何在另一个过程中获取一个过程的RaiseError消息

How to get the message of RaiseError of a procedure in another procedure

我有两个程序 PROC_APROC_B

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

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

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

我正在 PROC_A 中执行(调用)PROC_B。现在我想在 PROC_A.

中得到 PROC_B 抛出的错误信息

我该怎么做?

试试这个:

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;