sp_add_alert (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), который определяет предупреждение. Любое сообщение Microsoft SQL Server, хранимое в таблице sysmessages, отправленное журналу приложения Microsoft Windows с указанным уровнем критичности, приводит к отправке предупреждения. Аргумент 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 (электронная почта и сетевое сообщение) и может содержать одно или несколько значений, соединенных логическим оператором OR.Значение Описание 0 (по умолчанию)
Нет
1
Электронная почта
2
На пейджер
4
net send
- [ @database_name = ] 'database'
База данных, в которой должна произойти ошибка, для которой срабатывает предупреждение. Если аргумент database не указан, предупреждение срабатывает независимо от того, где произошла ошибка. Аргумент database имеет тип sysname и значение по умолчанию NULL.
- [ @event_description_keyword = ] 'event_description_keyword_pattern'
Последовательность символов, на которую должно быть похоже описание ошибки SQL Server. Можно использовать символы-шаблоны оператора LIKE языка Transact-SQL. Аргумент 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
Не реализовано в Microsoft 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 и, следовательно, могут вызвать предупреждения, такие как:
- уровень критичности ошибок sysmessages, равный или больше 19;
- любая инструкция RAISERROR, выполненная с синтаксисом WITH LOG;
- любая ошибка sysmessages, измененная или созданная при помощи процедуры 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 AdventureWorks Database
при срабатывании.
Примечание. |
---|
Этот пример предполагает, что сообщение 55001 и задание Back up the AdventureWorks 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 AdventureWorks Database' ;
GO
См. также
Справочник
sp_add_notification (Transact-SQL)
sp_altermessage (Transact-SQL)
sp_delete_alert (Transact-SQL)
sp_help_alert (Transact-SQL)
Хранимая процедура sp_update_alert (Transact-SQL)
sys.sysperfinfo (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)