sp_add_alert (Transact-SQL)
Создает предупреждение.
Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии). |
Cинтаксические обозначения в Transact-SQL
Синтаксис
sp_add_alert [ @name = ] 'name'
[ , [ @message_id = ] message_id ]
[ , [ @severity = ] severity ]
[ , [ @enabled = ] enabled ]
[ , [ @delay_between_responses = ] delay_between_responses ]
[ , [ @notification_message = ] 'notification_message' ]
[ , [ @include_event_description_in = ] include_event_description_in ]
[ , [ @database_name = ] 'database' ]
[ , [ @event_description_keyword = ] 'event_description_keyword_pattern' ]
[ , { [ @job_id = ] job_id | [ @job_name = ] 'job_name' } ]
[ , [ @raise_snmp_trap = ] raise_snmp_trap ]
[ , [ @performance_condition = ] 'performance_condition' ]
[ , [ @category_name = ] 'category' ]
[ , [ @wmi_namespace = ] 'wmi_namespace' ]
[ , [ @wmi_query = ] 'wmi_query' ]
Аргументы
[ @name = ] 'name'
Имя предупреждения. Имя появляется в сообщении электронной почты или пейджера, отправленном в ответ на предупреждение. Оно должно быть уникальным и содержать символ процента (%). Аргумент name имеет тип sysname и не имеет значения по умолчанию.[ @message_id = ] message_id
Номер сообщения об ошибке, которое определяет предупреждение. (Обычно соответствует номеру ошибки в таблице sysmessages.) Аргумент message_id имеет тип int и значение по умолчанию 0. Если для определения предупреждения используется аргумент severity, то аргумент message_id должен быть равен 0 или NULL.Примечание
Только ошибки sysmessages, записанные в журнал приложения Microsoft Windows, могут вызвать отправку предупреждения.
[ @severity = ] severity
Степень серьезности (от 1 до 25), которая определяет предупреждение. Любое сообщение SQL Server, хранимое в таблице sysmessages и отправленное в журнал приложения Windows Microsoft с указанной степенью серьезности, вызывает отправку предупреждения. Аргумент severity имеет тип int и значение по умолчанию 0. Если для определения предупреждения используется аргумент message_id, аргумент severity должен быть равен 0.[ @enabled = ] enabled
Показывает текущее состояние предупреждения. Аргумент enabled имеет тип tinyint и значение по умолчанию 1 (включено). Если этот аргумент принимает значение 0, предупреждение не включено и не срабатывает.[ @delay_between_responses = ] delay_between_responses
Период ожидания (в секундах) между откликами на предупреждение. Аргумент delay_between_responsesимеет тип int и значение по умолчанию 0, означающее, что между откликами нет времени ожидания (каждое появление предупреждения формирует отклик). Отклик может иметь одну из следующих форм либо обе формы.Одно или несколько уведомлений отправлено через электронную почту или пейджер.
Задание к выполнению.
Установкой этого значения можно предотвратить, например отправку нежелательных почтовых сообщений, если предупреждение возникает многократно за короткий промежуток времени.
[ @notification_message = ] 'notification_message'
Необязательное дополнительное сообщение, отправляемое оператору как часть сообщения электронной почты, сообщения net send или уведомления на пейджер. Аргумент notification_message имеет тип nvarchar(512) и значение по умолчанию NULL. Указание аргумента notification_message полезно для добавления специальных комментариев, таких как корректирующие процедуры.[ @include_event_description_in = ] include_event_description_in
Указывает, следует ли включить в текст сообщения уведомления с описанием ошибки SQL Server. Аргумент include_event_description_in* *имеет тип tinyint и значение по умолчанию 5 (электронная почта и net send) и может иметь одно или несколько значений, соединенных логическим оператором OR.Важно! Режимы отправки уведомлений с помощью пейджера и команды net send будут удалены из агента SQL Server в следующей версии Microsoft SQL Server.Старайтесь не использовать эти функции в новых разработках и предусмотрите соответствующие изменения в приложениях, которые используют их в настоящее время.
Значение
Описание
0 (по умолчанию)
Нет
1
Электронная почта
2
Пейджер
4
net send
[ @database_name = ] 'database'
База данных, в которой должна произойти ошибка, для которой срабатывает предупреждение. Если аргумент databaseне указан, предупреждение формируется независимо от того, где произошла ошибка. Аргумент database имеет тип sysname. Имена, заключенные в квадратные скобки ([ ]), недопустимы. Значение по умолчанию — NULL.[ @event_description_keyword = ] 'event_description_keyword_pattern'
Последовательность символов, которой должно соответствовать описание ошибки SQL Server. Могут использоваться символы-шаблоны выражений Transact-SQL LIKE. Аргумент event_description_keyword_pattern имеет тип nvarchar(100) и значение по умолчанию NULL. Этот параметр полезен для фильтрации имен объектов, например %customer_table%.[ @job_id = ] job_id
Идентификатор задания, которое запускается в ответ на это предупреждение. Аргумент job_id имеет тип uniqueidentifier и значение по умолчанию NULL.[ @job_name = ] 'job_name'
Имя задания, которое запускается в ответ на это предупреждение. Аргумент job_nameимеет тип sysname и значение по умолчанию NULL.Примечание
Необходимо указать либо аргумент job_id, либо аргумент job_name, но не оба аргумента одновременно.
[ @raise_snmp_trap = ] raise_snmp_trap
Не реализовано в SQL Server версии 7.0. Аргумент raise_snmp_trap имеет тип tinyint и значение по умолчанию 0.[ @performance_condition = ] 'performance_condition'
Значение, выраженное в формате «itemcomparatorvalue». Аргумент performance_condition имеет тип nvarchar(512), значение по умолчанию NULL и состоит из следующих элементов.Элемент формата
Описание
Item
Объект производительности, счетчик производительности или именованный экземпляр счетчика.
Comparator
Один из этих операторов: >, < или =.
Value
Числовое значение счетчика
[ @category_name = ] 'category'
Имя категории предупреждения. Аргумент category имеет тип sysname и значение по умолчанию NULL.[ @wmi_namespace= ] 'wmi_namespace'
Пространство имен WMI для запроса событий. Аргумент wmi_namespace имеет тип sysname и значение по умолчанию NULL. Поддерживаются только пространства имен на локальном сервере.[ @wmi_query= ] 'wmi_query'
Запрос, указывающий событие WMI для предупреждения. Аргумент wmi_query имеет тип nvarchar(512) и значение по умолчанию NULL.
Значения кода возврата
0 (успешное завершение) или 1 (неуспешное завершение)
Результирующие наборы
Нет
Замечания
Процедура sp_add_alert должна быть выполнена из базы данных msdb.
Это обстоятельства, при которых ошибки или сообщения, сформированные SQL Server и приложениями SQL Server, передаются в журнал приложений Windows и, следовательно, могут вызвать следующие предупреждения.
Степень серьезности ошибок sys.messages, равная или больше 19.
Любая инструкция RAISERROR, выполненная с синтаксисом WITH LOG.
Любая ошибка sys.messages, измененная или созданная при помощи процедуры sp_altermessage.
Любое событие, занесенное в журнал при помощи процедуры xp_logevent.
Среда Среда SQL Server Management Studio обеспечивает простой графический способ управления всей системой предупреждений и рекомендуется для настройки инфраструктуры предупреждений.
Если предупреждение функционирует неправильно, проверьте:
работает ли служба агента SQL Server;
появилось ли событие в журнале приложений Windows;
включено ли предупреждение.
События, сформированные посредством процедуры xp_logevent, появляются в базе данных master. Поэтому xp_logevent не вызывает срабатывание предупреждения, только если значение аргумента @database_name для предупреждения не равно 'master' или NULL.
Разрешения
По умолчанию только члены предопределенной роли сервера sysadmin могут выполнять процедуру sp_add_alert.
Примеры
Следующий пример добавляет предупреждение (Test Alert), которое запускает задание Back up the AdventureWorks2012 Database при срабатывании.
Примечание
Этот пример предполагает, что сообщение 55001 и задание Back up the AdventureWorks2012 Database уже существуют.Пример приводится только в целях наглядности.
USE msdb ;
GO
EXEC dbo.sp_add_alert
@name = N'Test Alert',
@message_id = 55001,
@severity = 0,
@notification_message = N'Error 55001 has occurred. The database will be backed up...',
@job_name = N'Back up the AdventureWorks2012 Database' ;
GO
См. также
Справочник
sp_add_notification (Transact-SQL)
sp_altermessage (Transact-SQL)
sp_delete_alert (Transact-SQL)
Хранимая процедура sp_update_alert (Transact-SQL)