Udostępnij za pośrednictwem


Projektowanie powiadomień o zdarzeniach

Projekt powiadomienie o zdarzeniu, należy określić następujące:

  • Zakres powiadomienie.

  • Transact-SQL instrukcja lub grupa instrukcja, który wywołuje powiadomienie o zdarzeniu.

Ostrzeżenie

Powiadomienia o zdarzeniach, które nie występują w odpowiedzi na zdarzenia, które wpływają na lokalnej lub globalnej tabel tymczasowych i procedur przechowywanych.

Definiowanie zakresu powiadomień

Można określić w odpowiedzi na powiadomienie o zdarzeniu instrukcja wszystkie obiekty w bieżącej bazie danych lub wszystkich obiektów na wystąpienie SQL Server.Powiadomieniach zdarzeń zdarzenia QUEUE_ACTIVATION i BROKER_QUEUE_DISABLED są zakresu do pojedynczych kolejek.Nie wszystkie zdarzenia może wystąpić w dowolnej zakres.Zdarzenia CREATE_DATABASE, na przykład może wystąpić tylko poziom wystąpienie serwera.Natomiast występuje na wszystkich tabel w bazie danych lub wszystkich tabel na serwerze mogą zostać zaprogramowane powiadomienie o zdarzeniu utworzone na zdarzenie ALTER_TABLE wystąpienie.

Poniższy przykład wysyła powiadomienie wszelkich ALTER TABLE uruchomić instrukcja w wystąpieniu serwera do Service Broker wystąpienie w bieżącej bazie danych.

CREATE EVENT NOTIFICATION log_ddl1 
   ON SERVER 
   FOR ALTER_TABLE 
   TO SERVICE '//Adventure-Works.com/ArchiveService' , 'current database';

Zawiera łącza do Transact-SQL instrukcji i zakresy, które mogą być określone dla nich znajdują się w sekcji "Wybieranie DDL instrukcji do podniesienia zdarzeń powiadomienie" występujący.

Określanie instrukcji Transact-SQL lub grupa instrukcji

Powiadomienia o zdarzeniach można tworzyć w odpowiedzi na następujące:

  • Szczególne instrukcja DDL, zdarzenie śledzenia SQL lub Service Broker zdarzeń

  • Wstępnie zdefiniowane grupy instrukcji DDL lub zdarzeń śledzenia SQL

Wybranie określonego instrukcji DDL podnieść powiadomienie o zdarzeniu

Powiadomienia o zdarzeniach można zaprojektować występującej po danej Transact-SQL instrukcja lub procedura składowana jest Uruchom.Jak pokazano w poprzednim przykładzie, który powiadomienie o zdarzeniu po ALTER_TABLE zdarzeń.

Dla listy pojedynczych Transact-SQL instrukcji, które można określić, aby podnieść powiadomienie o zdarzeniu i zakres, w którym powiadomień można wykonać, zobacz Zdarzenia DDL.Te zdarzenia może być również otrzymana przez badanie sys.event_notification_event_types wykazu widoku.

Ostrzeżenie

Niektóre procedury składowane w systemie , wykonywać operacje DDL like można również powiadomienia o zdarzeniach pożaru.Badania do określenia ich odpowiedzi na powiadomienia o zdarzenie procedury składowane w systemie , są uruchamiane.Na przykład utworzyć typ instrukcja i sp_addtype zarówno procedura składowana zostanie zastosowana powiadomienie o zdarzeniu utworzonego zdarzenie CREATE_TYPE.

Wybranie określonego zdarzenia śledzenia SQL podnieść powiadomienie o zdarzeniu

Powiadomienia o zdarzeniach można zaprojektować ognia po wystąpieniu zdarzenie śledzenia SQL.Na przykład, następujący powiadomienie o zdarzeniu fires po Object_Created zdarzeń na serwerze.

CREATE EVENT NOTIFICATION log_ddl1 
   ON SERVER 
   FOR Object_Created 
   TO SERVICE '//Adventure-Works.com/ArchiveService', 'current database' ;

Lista zdarzeń śledzenia SQL, które można podnieść powiadomienie o zdarzeniu, zobacz Śledzenie zdarzeń do użytku z powiadomień o zdarzeniach.Można także uzyskać listę tych zdarzeń przez badanie sys.event_notification_event_types wykazu widoku.Zdarzenia śledzenia SQL mogą być wykonywane tylko na wystąpienie serwera zakres.Aby uzyskać więcej informacji dotyczących śledzenia SQL zdarzenie klasy, zobacz SQL Server Profiler odniesienia.

Wybranie zdarzenia Service Broker podnieść powiadomienie o zdarzeniu

zdarzeniePowiadomienia mogą służyć do ognia po QUEUE_ACTIVATION lub BROKER_QUEUE_DISABLED Service Broker zdarzenie.Zdarzenie QUEUE_ACTIVATION występuje, gdy kolejka jest komunikatów do przetwarzania.Aby uzyskać więcej informacji, zobacz Aktywacji opartej na zdarzenie.Zdarzenie BROKER_QUEUE_DISABLED występuje, gdy stan kolejki jest zestaw do OFF.Aby uzyskać więcej informacji, zobacz Obsługa wiadomości Poison.

Wybranie wstępnie zdefiniowane grupy instrukcji DDL podnieść powiadomienie o zdarzeniu

Powiadomienie o zdarzeniu może wystąpić po dowolnym Transact-SQL zdarzenie, należy wstępnie zdefiniowany sposób grupowanie podobnych zdarzeń jest Uruchom.Na przykład, jeśli chcesz powiadomienie o zdarzeniu występuje po wykonaniu wszelkich instrukcja CREATE TABLE, ALTER TABLE lub DROP TABLE, można określić DDL_TABLE_EVENTS do tworzenia powiadomienie o zdarzeniu instrukcja.Po tworzenie zdarzenie wykonuje powiadomienia, zdarzenie grupa zostanie dodana do sys.zdarzenies wykazu widoku.

Ostrzeżenie

In SQL Server 2005, sys.zdarzenies rozwija zdarzenie grup przez wyświetlanie tylko osoba zdarzenies, które są chronione przez grupę.Dlatego zmiany zdarzenie objęte grup zdarzeń w SQL Server 2008 nie stosuje się do powiadomienia o zdarzeniach, które są tworzone na tych grup zdarzeń w SQL Server 2005.

Listę wstępnie zdefiniowanych grup instrukcji DDL i DML, które są dostępne dla zdarzenie powiadomienia, określonego sprawozdania obejmują one i zakres, w których te zdarzenie grup można wykonać, zobacz Grupy zdarzeń DDL.

Wybranie wstępnie zdefiniowane grupy SQL śledzenia zdarzeń, aby podnieść powiadomienie o zdarzeniu

powiadomienie o zdarzeniu Może wystąpić po uruchomieniu wszystkich zdarzeń śledzenia SQL należącej do wstępnie zdefiniowany sposób grupowanie podobnych śledzenia zdarzeń.Na przykład, jeśli powiadomienie o zdarzeniu występuje po zdarzeniu wszelkie związane z blokowaniem śledzenia, który zawiera zdarzenie LOCK_DEADLOCK, LOCK_DEADLOCK_CHAIN, LOCK_ESCALATION i DEADLOCK_GRAPH, można określić dla TRC_LOCKS w tworzenia powiadomienie o zdarzeniu instrukcja.

Listę wstępnie zdefiniowanych grup śledzenia SQL zdarzeniedostępnych dla s zdarzenie powiadomienia, zobacz Śledzenie zdarzeń grup do użytku z powiadomień o zdarzeniach.Grupy te można wykonać tylko poziom wystąpienie serwera.