Может ли 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