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