Ответ 1
Системная хранимая процедура msdb.dbo.sp_update_alert
обновляет записи в таблице msdb.dbo.sysalerts
. Параметр nvarchar(512)
, "@notification_message" сохраняется в столбце msdb.dbo.sysalerts.notification_message
. Когда срабатывает предупреждение, содержимое этого столбца вытягивается для сообщения. Я не пробовал это раньше, но вы можете попытаться создать задание агента SQL, которое изменяет значение в msdb.dbo.sysalerts.notification_message
и присоединяет это задание к уведомлению с помощью параметров @job_id
или @job_name
. Если вам повезет, задание будет выполнено до отправки уведомления, таким образом, "динамически" изменит текст уведомления. То, что я ожидаю, скорее всего, так это то, что задание будет выполняться одновременно и повлияет только на следующий раз, когда это предупреждение будет запущено. Но в зависимости от того, что вы хотите увидеть, это может быть достаточно хорошим.
Для получения дополнительной информации зайдите в базу данных MSDB и запустите sp_helptext sp_update_alert
, и вы увидите, что она делает.
Еще один вариант - отправить задание агента SQL отправить сообщение с помощью sp_send_dbmail
. Затем вы можете настроить свое сообщение, которое вы хотите.