Основные сведения уведомлений о событиях

Уведомления о событиях выполняются в ответ на множество инструкций языка определения данных (DDL) Transact-SQL и на события SQL Trace; уведомления отправляют сведения об этих событиях службе компонента Service Broker.

Уведомления о событиях можно использовать следующим образом.

  • Регистрировать и просматривать изменения или активность базы данных.
  • Выполнять действия в ответ на события в асинхронном режиме, а не синхронном.

Уведомления о событиях предоставляют программную альтернативу триггерам DDL и использованию приложения SQL Trace.

Уведомления о событиях запускаются асинхронно, вне области транзакции. Поэтому, в отличие от триггеров DDL, уведомления о событиях можно использовать внутри приложений баз данных и реагировать на события, не требуя ресурсов, выделяемых для немедленной транзакции. Дополнительные сведения см. в разделе Сравнительное изучение уведомлений о событиях и триггеров.

В отличие от трассировок SQL Trace, уведомления о событиях могут использоваться для выполнения действий в ответ на события SQL Trace внутри экземпляра SQL Server. Дополнительные сведения см. в разделе Сравнение уведомлений о событиях и трассировки SQL.

При создании уведомления о событии открывается один или несколько диалогов компонента Service Broker между экземпляром SQL Server и указанной целевой службой. Эти диалоги обычно остаются открытыми, пока уведомление о событии существует в виде объекта на экземпляре сервера. В некоторых случаях ввиду ошибок диалоги могут закрываться до удаления уведомления о событии. Эти диалоги никогда не разделяются между уведомлениями о событиях. Каждое уведомление владеет собственными диалогами. Явное завершение диалога не дает конечной службе далее получать сообщения, и при следующем появлении события диалог повторно открываться не будет.

Сведения о событиях доставляются в компонент Service Broker в виде переменной типа xml, содержащей сведения о том, когда произошло событие, о затронутом объекте базы данных, об использованном пакете инструкций Transact-SQL и т.д. Дополнительные сведения о схеме XML, создаваемой уведомлениями о событиях, см. в разделе EVENTDATA (Transact-SQL).

Данные события могут использоваться приложениями, запускаемыми вместе с SQL Server для отслеживания изменений и принятия решений. Например, следующее уведомление о событии отправляет сообщение определенной службе каждый раз, когда инструкция ALTER TABLE выполняется в образце базы данных AdventureWorks.

USE AdventureWorks
GO
CREATE EVENT NOTIFICATION NotifyALTER_T1
ON DATABASE
FOR ALTER_TABLE
TO SERVICE '//Adventure-Works.com/ArchiveService' ,
    '8140a771-3c4b-4479-8ac0-81008ab17984';

Образец сценария уведомления о событии, который может быть запущен для образца базы данных AdventureWorks, EventNotificationSample.sql, поставляется вместе с примерами Образцы ядра СУБД SQL Server. Дополнительные сведения см. в разделе Образец Event Notifications.

См. также

Основные понятия

Проектирование уведомлений о событиях
Основные сведения уведомлений о событиях
Реализация уведомлений о событиях

Справка и поддержка

Получение помощи по SQL Server 2005