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

时间:2016-03-17 08:16:22

标签: sql-server sql-server-2008 raiseerror

我有两个程序var arr = $.map($('svg *'), function(v){ return v.outerHTML; }); PROC_A

在两个程序中都管理交易。

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

RAISEERROR

我正在RAISERROR ('Initiator is Inactive', 16, 1, 'Approve Transaction'); 执行(调用)PROC_B。现在我想在PROC_A中收到PROC_B抛出的错误消息。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

试试这个:

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;