如何在另一个过程中获取一个过程的RaiseError消息
How to get the message of RaiseError of a procedure in another procedure
我有两个程序 PROC_A
和 PROC_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;
我有两个程序 PROC_A
和 PROC_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;