我有两个程序PROC_A
和PROC_B
.
在这两个过程中,事务都是管理的。
PROC_B
通过调用引发错误RAISEERROR
并在特定条件下传递消息
RAISERROR ('Initiator is Inactive', 16, 1, 'Approve Transaction');
我正在执行(调用)PROC_B
。PROC_A
现在我想得到PROC_B
in抛出的错误消息PROC_A
。
我怎样才能做到这一点?
我有两个程序PROC_A
和PROC_B
.
在这两个过程中,事务都是管理的。
PROC_B
通过调用引发错误RAISEERROR
并在特定条件下传递消息
RAISERROR ('Initiator is Inactive', 16, 1, 'Approve Transaction');
我正在执行(调用)PROC_B
。PROC_A
现在我想得到PROC_B
in抛出的错误消息PROC_A
。
我怎样才能做到这一点?
尝试这个:
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;