Я пытаюсь отправить почту базы данных, когда внутри транзакции возникает ошибка. Моя настройка для dbo.sp_send_dbmail правильная, когда я выполняю процедуру, я получаю электронное письмо в течение 1 минуты.
Однако, когда я пытаюсь использовать dbo.sp_send_dbmail внутри другого процесса в транзакциях, я не получаю электронное письмо. Сервер Sql показывает в окне результатов, что «Почта поставлена в очередь», но я ее никогда не получаю.
НАЧАТЬ СДЕЛКУ
ЗАЯВИТЬ @err int ЗАЯВИТЬ @test nvarchar (макс.)
RAISERROR ('Это тест', 16, 1) SELECT @err = @@ ERROR
ЕСЛИ @err ‹> 0 НАЧАТЬ
УСТАНОВИТЬ @test = error_message ()
EXEC msdb.dbo.sp_send_dbmail
@ recipients = '[email protected]',
@body = 'test inside',
@subject = 'Ошибка с процедурой',
@body_format = 'HTML',
@append_query_error = 1,
@profile_name = 'Профиль почты базы данных';ОТКАТ СДЕЛКА ВОЗВРАТ КОНЕЦ
ЗАВЕРШИТЬ СДЕЛКУ
И я получаю результат как
Msg 50000, уровень 16, состояние 1, строка 7
Это тест
Почта в очереди.