Основные сведения уведомлений о событиях
Уведомления о событиях выполняются в ответ на множество инструкций языка определения данных (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.
См. также
Основные понятия
Проектирование уведомлений о событиях
Основные сведения уведомлений о событиях
Реализация уведомлений о событиях