CREATE olay bildirim (Transact-SQL)
Bir hizmet Aracısı hizmet için bir veritabanı veya sunucu olay hakkında bilgi gönderen bir nesne oluşturur.Yalnızca kullanarak olay bildirimlerini oluşturulur Transact-SQL ifadeler.
CREATE EVENT NOTIFICATION event_notification_name
ON { SERVER | DATABASE | QUEUE queue_name }
[ WITH FAN_IN ]
FOR { event_type | event_group } [ ,...n ]
TO SERVICE 'broker_service' , { 'broker_instance_specifier' | 'current database' }
[ ; ]
Bağımsız değişkenler
event_notification_name
olay bildirim adıdır.Bir olay bildirim adı kurallarına uymanız gerekir tanımlayıcılar içinde oluşturuldukları kapsam içinde benzersiz olmalıdır: Sunucu, DATABASE veya object_name.SUNUCU
Geçerli kapsam olay bildirim için geçerli örnek SQL Server. Belirtilmişse, bildirim her harekete IÇIN belirtilen olay yan tümce herhangi bir örneğini oluşur. SQL Server.VERİTABANI
Geçerli kapsam, geçerli veritabanı için olay bildirimii.Belirtilmiş olması durumunda, belirtilen olay IÇIN yan tümcesinde geçerli veritabanında olduğunda bildirim tetikler.SIRA
Bildirim kapsamını, geçerli veritabanındaki özel bir sıraya uygulanır.QUEUE, yalnızca, QUEUE_ACTIVATION IÇIN ya da belirtilen BROKER_QUEUE_DISABLED FOR belirtilebilir.queue_name
Is the name of the queue to which the event notification applies.queue_name can be specified only if QUEUE is specified.fan_in İLE
Bildirir SQL Server her olay için yalnızca tek bir ileti göndermek için hizmet tüm olay bildirimlerini herhangi belirtilen:Aynı olayı oluşturuldu.
(Aynı SID tarafından tanımlanan gibi), aynı anapara tarafından oluşturulan.
Aynı hizmet belirtin ve broker_instance_specifier.
FAN_IN belirtin.
Örneğin, üç olay bildirimleri oluşturulur.Tüm olay bildirimleri IÇIN ALTER_TABLE, WITH FAN_IN, aynı YAPıLıR, SERVIS yan tümce belirtin ve aynı SID tarafından oluşturulur.ALTER tablo deyim çalıştırıldığında, bu üç olay bildirim tarafından oluşturulan iletileri tek birleştirilir.Hedef hizmet, bu nedenle, olay yalnızca tek bir ileti alır.
event_type
Is the name of an event type that causes the event notification to execute.event_type can be a Transact-SQL DDL event type, a SQL Trace event type, or a Service Broker event type.Bir liste niteleme Transact-SQL DDL olay türleri için bkz: DDL olayları. For a list of qualifying SQL Trace event types, see Olaylar, olay bildirimleri ile kullanım için izleme.Service Broker event types are QUEUE_ACTIVATION and BROKER_QUEUE_DISABLED.Daha fazla bilgi için bkz:Olay bildirimleri tasarlama.event_group
Önceden tanımlanmış bir grup adı Transact-SQL veya SQL izleme olay türleri. Bir olay bildirim sonra yürütülmesi bir olay grubuna ait herhangi bir olayı harekete.DDL olay gruplarının listesi için Transact-SQL Bunlar kapak olayları ve kapsam yanıp bunlar tanımlanabilir Bkz: DDL olay grupları (ingilizce). Izleme olayı gruplar ve kullanıcılar kapak izleme olayları listesi için bkz: Olay bildirimleri ile kullanmak için olay grupları izleme.event_group Olay UYARıSı CREATE deyim sona erdiğinde, ayrıca bir makro gibi davranır, olay türleri ekleyerek, için kapsayan sys.Events kataloğunu görüntüleyin.
'broker_service'
Specifies the target service that receives the event instance data.SQL Server opens one or more conversations to the target service for the event notification.Bu hizmet aynı kalmasını gerekir SQL Server Olay türü ve iletiyi göndermek için kullanılan bir anlaşma iletisi gönderir. Daha fazla bilgi için bkz:Service Broker hizmetleri oluşturma.Görüşmeleri, olay bildirim bırakılan kadar açık kalır.Belirli hataları görüşmeleri, önceki kapatmaya neden olabilir.Bazı veya tüm görüşmeleri açıkça bitiş hedef hizmet daha fazla ileti almasını engelleyebilir.
{ 'broker_instance_specifier' | 'geçerli veritabanı' }
Belirtir bir Hizmet Aracısı karşı örnek broker_service giderilmiştir. Belirli bir değeri Hizmet Aracısı sorgulayarak alınan service_broker_guid sütunsys.Databases kataloğunu görüntüleyin.Kullanımı 'geçerli veritabanı' belirtmek için Hizmet Aracısı örnek geçerli veritabanında.'geçerli veritabanı' büyük/küçük durum duyarlı olmayan bir dize literal ' dir.
Remarks
Service Broker bir ileti türü ve anlaşma özellikle olay bildirimlerini içerir.Bu nedenle, bir tane zaten varolduğundan, oluşturulacak başlatan bir hizmet yok Hizmet Aracısı aşağıdaki anlaşma adı belirtir: https://schemas.microsoft.com/SQL/Notifications/PostEventNotification
Olay bildirimlerini aldığı hedef hizmet hazır bu anlaşma kabul gerekir.Oluşturma hakkında daha fazla bilgi için Service Broker Hizmetleri hedeflemek için bkz: Programlama ile Service Broker'ın yararları.
Important Note: |
---|
Service Broker iletişim güvenliği, bir uzak sunucuda bir hizmet Aracısı iletileri göndermek için olay bildirimleri için yapılandırılmalıdır.Iletişim güvenliği, tam güvenlik modeline göre el ile yapılandırılmaları gerekir.Daha fazla bilgi için bkz:Olay bildirim iletişim güvenliği. |
Bir bildirim etkinleştiren bir olay işlem geri alındı, olay bildirimi gönderme de döndürülüyor.Olay bildirimlerini hareketin tamamlandığı veya tetikleyici içinde geri tetikleyici içinde tanımlanmış olan bir eylem tarafından harekete değil.Hareketleri izleme olayları bağlı olduğundan, olay bildirimleri izleme olayları için temel olup bunları etkinleştiren hareket döndürülüyor bağımsız olarak gönderilir.
Hedef hizmet ile sunucu arasındaki konuşma çalışmıyorsa sonra bir olay bildirim harekete, olay bildirimini bırakılır ve bir hata bildirdi.
Ilk olarak bildirim başlatıldı olayı harekete başarılı veya olay bildirimi gönderme başarısız etkilenmez.
Bir olay bildirim göndermek için herhangi bir hata günlüğe kaydedilir.
İzinler
Veritabanı (ON DATABASE) için kapsamlı olay bildirim oluşturmak için geçerli veritabanında CREATE DATABASE DDL OLAY UYARıSı izni gerektirir.
DDL ekstresindeki (ON SERVER) sunucu için kapsamlı olay bildirim oluşturmak için sunucudaki CREATE DDL OLAY UYARıSı izni gerektirir.
Izleme olayı, olay bildirim oluşturmak için sunucudaki CREATE TRACE OLAY UYARıSı izni gerektirir.
Bir sıra için kapsamlı olay bildirim oluşturmak için sıraya ALTER izni gerektirir.
Örnekler
Not
Örnekleri A ve B'ın altında GUID, TO SERVICE 'NotifyService' yan tümce ('8140a771-3c4b-4479-8ac0-81008ab17984'), örnek olduğu bilgisayarınıza özeldir küme kurun. Bu örnek, AdventureWorks veritabanı için GUID oldu.
Kopyalama ve bu örnekleri çalıştırma hakkında bilgi için bir bilgisayardan bu GUID değiştirmeniz gerekir ve SQL Server Örnek. Yukarıdaki değişkenleri bölümünde açıklandığı gibi elde edebilirler 'broker_instance_specifier' sys.databases katalog görünümünün service_broker_guid sütun sorgulamak .
C.olay bildirim oluşturmak kapsamlı sunucusudur
Aşağıdaki örnek, bir hedef hizmetini kullanarak ayarlamak için gerekli olan nesneleri oluşturur. Service Broker. Hedef hizmet, ileti türü ve özellikle olay bildirimlerini başlatan hizmet anlaşma başvuruyor.Bir olay bildirimi bir bildirim gönderir, hedef hizmet oluşturulduktan sonra her bir Object_Created izleme olayı örnek üzerinde gerçekleşir. SQL Server.
b.olay bildirim oluşturmak kapsamlı veritabanıdır
Aşağıdaki örnek olarak, önceki örnekteki aynı hedef hizmet bir olay bildirim oluşturur.Sonra bildirim olayı harekete bir ALTER_TABLE olay oluşur AdventureWorks Örnek Veritabanı'nı tıklatın.
c.Bir olay bildirim hakkında bilgi, alma kapsamlı sunucusudur
Aşağıdaki örnek sorgular sys.server_event_notifications Katalog görünümü meta veriler için olay bildirim hakkında log_ddl1 Sunucu kapsam ile oluşturuldu.
d.Bir olay bildirim hakkında bilgi, alma kapsamlı veritabanıdır
Aşağıdaki örnek sorgular sys.event_notifications Katalog görünümü meta veriler için olay bildirim hakkında Notify_ALTER_T1 Veritabanı kapsamla oluşturuldu.