Я пытаюсь отправить почту базы данных, когда внутри транзакции происходит ошибка. Мои настройки для dbo.sp_send_dbmail верны, когда я выполняю процедуру, я получаю письмо в течение 1 минуты.
Однако, когда я пытаюсь использовать dbo.sp_send_dbmail внутри другого процесса в транзакциях, я не получаю письмо.Sql-сервер показывает в окне результатов, что «Mail в очереди», но я никогда не получаю его.
НАЧАЛО СДЕЛКИ
ОБЪЯВИТЬ @err int ОБЪЯВИТЬ @test nvarchar (макс.)
RAISERROR ('Это тест', 16, 1) ВЫБРАТЬ @err= @@ ERROR
IF @err <> 0 BEGIN
SET @test = error_message ()
EXEC msdb.dbo.sp_send_dbmail@ receients = 'mail@mail.net',@body = 'тест внутри',@subject = 'Ошибка с proc',@body_format = 'HTML',@append_query_error = 1,@profile_name = 'База данных почтового профиля';
ROLLBACK TRANSACTION RETURN END
COMMIT TRANSACTION
И я получаю результат как
Msg 50000, Уровень 16, Состояние 1,Линия 7Это тестПочта в очереди.