Dapper вернуть печатное сообщение из хранимой процедуры - PullRequest
1 голос
/ 14 января 2020

У меня есть хранимая процедура, которую я не могу изменить, и я пытаюсь получить сообщение PRINT, возвращаемое в случае возникновения ошибки. Код в моей хранимой процедуре:

IF((ISNULL(@ID,''))='')
BEGIN
    PRINT N'Error: This ID is invalid.'; 
    RETURN;
END

В моем вызове я имею следующее:

var storedProcResult = connection.Query("AdventureWorks.dbo.myStoredProcedure", new
{
    @ID = null
},
 commandType: CommandType.StoredProcedure
);

Значение storedProcResult равно 0, но я заинтересован в получении PRINT сообщения. Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 14 января 2020

Вы можете использовать структуру ниже и просто заменить значение переменной @ErrorMessage.

CREATE OR ALTER PROCEDURE DBO.SPR_PROCEDURE_NAME()AS
BEGIN

    DECLARE 
     @ErrorMessage NVARCHAR(4000)
    ,@ErrorSeverity INT
    ,@ErrorState INT

    BEGIN TRY



        --YOUR CODE HERE



    END TRY

    BEGIN CATCH     
        IF (XACT_STATE()) = -1
            ROLLBACK TRAN

        SELECT @ErrorMessage = ERROR_MESSAGE(),
               @ErrorSeverity = ERROR_SEVERITY(),  
               @ErrorState = ERROR_STATE();  
        RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState);

    END CATCH

END
...