Может ли Sql Server отправлять оповещения по электронной почте, если поднято значение RAISEERROR?

Возможно ли заставить Sql Server 2008 отправлять электронную почту, когда выдается запрос RAISEERROR.. или, по крайней мере, когда RAISEERROR с заранее определенным кодом ошибки или кодами?

2 ответа

Решение

Вы связываете "предупреждение" агента SQL для обнаружения ошибки, которое затем отправляет электронное письмо "оператору" или запускает задание.

Ты используешь sp_add_alert но основная информация здесь: мониторинг и реагирование на события

Да, вы можете вставить блок try/catch и отправить электронное письмо, используя почту базы данных. Было бы что-то вроде этого:

BEGIN TRY
   [...statement(s)...]
END TRY
BEGIN CATCH
   EXEC sp_send_dbmail @profile_name='MyProfile',
      @recipients='recipient@mydomain.com',
      @subject='Query Error',
      @body='An error occurred during execution of a statement.'
END CATCH

Вы можете использовать @@Error в блоке CATCH, чтобы определить конкретный уровень ошибки, который был выдан.

Подробнее о заявке TRY/CATCH
Подробнее о Почте базы данных SQL Server 2008

Другие вопросы по тегам