Как получить сообщение RaiseError о процедуре в другой процедуре

У меня две процедуры PROC_A а также PROC_B,

В обеих процедурах транзакции управляются.

PROC_B выдает ошибку при вызове RAISEERROR и передает сообщение в определенном состоянии

RAISERROR ('Initiator is Inactive', 16, 1, 'Approve Transaction'); 

Я исполняю (звоню) PROC_B в PROC_A, Теперь я хочу получить сообщение об ошибке PROC_B в PROC_A,

Как я могу это сделать?

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;
Другие вопросы по тегам