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



我有两个过程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;

相关内容

  • 没有找到相关文章

最新更新