У меня есть follwing T-sql
внутри proc, вызванного с Trigger
. Сам trigger
запускается в другой proc и завернут в transaction
.Try-Catch не работает должным образом внутри спускового крючка
IF @Email <> ''
BEGIN
BEGIN TRY
EXEC msdb..sp_send_dbmail
@profile_name = @MailProfileName,
@recipients = @Email,
@subject = @Subject,
@body = @EmailBody,
@body_format = @EmailBodyFormat
END TRY
BEGIN CATCH
-- In future this error can be logged to message log or as an action message but ignore for now, it's due to mail profile setting.
--SELECT ERROR_MESSAGE()
END CATCH
END
Проблема заключается в том, что, когда @MailProfileName
является значение invalid
профиля затем sp_send_dbmail
появлялось сообщение об ошибке, которая прекрасно до сих пор, но то, что я ожидаю от try-catch
, чтобы поймать эту ошибку в catch
блоке и подавить его и продолжить выполнение на следующей строке. Но что на самом деле происходит, весь процесс вылетает из-за этой ошибки.
Кто-нибудь знает, почему это происходит. Ta.
Пожалуйста, не редактируйте вопрос, чтобы включить решение. Вместо этого ответьте на свой вопрос и примите ответ, чтобы люди знали, что проблема решена. –