Aracılığıyla paylaş


Olay bildirimleri tasarlama

Bir olay bildirim tasarlamak için aşağıdakileri belirlemeniz gerekir:

  • Bildirim kapsam.

  • The Transact-SQL deyim, or group of statements, that raises the olay bildirim.

Not

Olay bildirimleri, yanıt olarak, yerel veya genel geçici tablolar ve saklı yordamlar etkileyen olaylar gerçekleşmez.

Bildirim kapsam tanımlama

Yanıt olarak, geçerli veritabanındaki tüm nesneleri veya tüm nesneler üzerinde yaptığınız bir deyim gerçekleşmesi için bir olay bildirim belirtebileceğiniz bir örnek, SQL Server. Olay bildirimlerini QUEUE_ACTIVATION ve BROKER_QUEUE_DISABLED olaylarına belirtilen bireysel kuyruklara kapsamına eklenir.Tüm olayları sırasında oluşabilir kapsam.CREATE_DATABASE olayları, örneğin, yalnızca sunucu örnek düzeyinde ortaya çıkabilir.Tersi durumda, veritabanındaki tüm tabloların veya sunucu üzerindeki tüm tablolar için ALTER_TABLE olaya oluşturulan bir olay bildirim programlanabilir.

Aşağıdaki örnek herhangi bir bildirim gönderir. ALTER TABLE deyim sunucu kopyasına çalıştırmak Service Broker Geçerli veritabanı örneği.

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

Bağlantılar Transact-SQLs deyim ve bunlar için belirtilen kapsamlar "Seçme bir belirli DDL deyim için Yükselt bir olay aşağıdaki bildirim" bölümünde sağlanmıştır.

Bir Transact-SQL deyim veya deyimleri grubu belirtme

Yanıt olarak aşağıdaki gerçekleşmesi için olay bildirimleri oluşturulabilir:

  • Belirli bir DDL deyim, BIR SQL izleme olayı veya Service Broker Olay

  • Önceden tanımlanmış BIR grup DDL) deyimleri ya da SQL izleme olayları

Bir olay bildirim Yükselt belirli bir DDL ekstresi seçme

Belirli bir sonra oluşmaya olay bildirimlerini tasarlanabilir. Transact-SQL deyim veya saklı yordam çalıştırılır. Önceki örnekte gösterildiği gibi sonra bu olay bildirim oluşur bir ALTER_TABLE Olay.

Kişi listesi için Transact-SQL bir olay bildirim ve kapsam, bildirimleri çalıştıramıyor görmek, artýrmak için belirtilen ifadeleri DDL olayları. Bu olaylar da sorgulayarak elde edilebilir sys.event_notification_event_types kataloğunu görüntüleyin.

Not

DDL ve benzeri işlemleri belirli sistem saklı yordamları da olay bildirimlerini ateşlenmesine.Olay bildirimleri, çalışan sistem saklı yordamlara yanıtlarını belirlemek için sınayın.Örneğin, CREATE TYPE deyim ve sp_addtype depolanmış yordamın her ikisi de CREATE_TYPE olayı oluşturan bir olay bildirim ateşlenmesine.

Bir olay bildirim Yükselt için belirli bir SQL izleme olayı seçme

Bir SQL izleme olay gerçekleştikten sonra baþlatmak için olay bildirimleri tasarlanabilir.Örneğin, sonra aşağıdaki olay bildirim harekete bir Object_Created Sunucudaki olay.

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

olay bildirim oluşturmak SQL izleme olayları listesi için bkz: Olaylar, olay bildirimleri ile kullanım için izleme. Sorgulayarak bu olayların bir listesini edinebilirsiniz sys.event_notification_event_types kataloğunu görüntüleyin.SQL izleme olayları, yalnızca sunucu örnek kapsamında çalıştırılabilir.SQL izleme hakkında daha fazla bilgi için olay sınıfları Bkz: SQL Server Profiler başvurusu.

Bir Hizmet Aracısı olay, bir olay bildirim Yükselt'i seçme

Olay bildirimlerini QUEUE_ACTIVATION veya BROKER_QUEUE_DISABLED sonra baþlatmak için tasarlanmış Service Broker Olay. QUEUE_ACTIVATION olay sıra iletileri işlemek üzere olduğunda gerçekleşir.Daha fazla bilgi için bkz:Olay tabanlı etkinleştirme.Sıra durumu KAPALı olarak ayarlandığında BROKER_QUEUE_DISABLED olayı oluşur.Daha fazla bilgi için bkz:Zarar iletisi işleme.

Önceden tanımlanmış bir olay bildirim Yükselt için DDL ekstreleri grubu seçme.

Bir olay bildirim sonra oluşabilir Transact-SQL benzer olaylar için önceden tanımlanmış bir gruplandırma ait olay çalıştırılır. Örneğin, bir olay bildirim herhangi CREATE tablo, ALTER tablo veya DROP tablo deyim yürütüldükten sonra oluşmaya isterseniz, OLAY UYARıSı CREATE deyiminde FOR DDL_TABLE_EVENTS belirtebilirsiniz.CREATE OLAY UYARıSı'nı çalıştırdıktan sonra Olay grubuna eklenen sys.Events kataloğunu görüntüleyin.

Not

Içinde SQL Server 2005, sys.Events , yalnızca bir grup tarafından kapsanır olaylarını tek tek listeleyerek, olay grupları genişletir.Bu nedenle, olay grupları kapsamındaki olaylara değiştirir. SQL Server 2008 Olay grupların oluşturulmuş olan olay bildirimleri için geçerli değildir SQL Server 2005.

DDL ve DML deyimlerini olan ve olay bildirimleri, kapak belirli ifadeleri ve, bu olay grupları için kapsam için kullanılabilir olan önceden tanımlanmış bir gruplarının listesi yürütmek, bkz: DDL olay grupları (ingilizce).

Bir olay bildirim Yükselt için SQL izleme olayları, önceden tanımlanmış bir grubu seçme.

Bir olay bildirim, benzer izleme olayları için önceden tanımlanmış bir gruplandırması ait herhangi bir SQL izleme olayı çalıştırıldıktan sonra oluşabilir.Örneğin, bir olay bildirim LOCK_DEADLOCK LOCK_DEADLOCK_CHAIN, LOCK_ESCALATION ve DEADLOCK_GRAPH olaylar içeren bir kilitleme ilgili izleme olayından sonra gerçekleşmesini istiyorsanız FOR TRC_LOCKS OLAY UYARıSı CREATE deyiminde belirtebilirsiniz.

Önceden tanımlı gruplar, olay bildirimleri için SQL izleme olay listesi için bkz: Olay bildirimleri ile kullanmak için olay grupları izleme. Bu gruplar, yalnızca sunucu örnek düzeyinde çalıştırabilirsiniz.