WMI-Anbieter für Serverereignisse Klassen und Eigenschaften
Gilt für: SQL Server
Es gibt zwei Hauptkategorien von Ereignissen, aus denen das Programmiermodell für den WMI-Anbieter für Serverereignisse besteht, das durch Ausstellen von WQL-Abfragen für den Anbieter abgefragt werden kann. Hierbei handelt es sich um DDL-Ereignisse (Data Definition Language) und Ablaufverfolgungsereignisse. Die QUEUE_ACTIVATION
Ereignisse und BROKER_QUEUE_DISABLED
Dienstbrokerereignisse können ebenfalls abgefragt werden.
Ereignisse und Ereignisgruppen
Um eine vollständige Liste der Serverereignisse abzurufen, fragen Sie die sys.event_notification_event_types
Katalogansicht mit dem folgenden Transact-SQL-Skript ab.
; WITH EventsCTE (Child, Level, Hierarchy)
AS (
SELECT t.[type],
0,
CAST(t.[type_name] AS NVARCHAR(MAX))
FROM sys.event_notification_event_types t
WHERE t.parent_type IS NULL
UNION ALL
SELECT t.[type],
Level + 1,
CAST(rc.Hierarchy + '/' + cast(t.[type_name] AS NVARCHAR(MAX)) AS NVARCHAR(MAX))
FROM sys.event_notification_event_types t
INNER JOIN EventsCTE rc
ON t.parent_type = rc.Child
)
SELECT Level, Hierarchy
FROM EventsCTE
WHERE Level > 0
ORDER BY Hierarchy;
Hinweise
Das DDL_ASSEMBLY_EVENTS
Ereignis enthält z. B. ein beliebiges ALTER_ASSEMBLY
Ereignis CREATE_ASSEMBLY
und ein DROP_ASSEMBLY
Beliebiges Ereignis. Ebenso umfasst das TRC_FULL_TEXT
Ereignis alle FT_CRAWL_ABORTED
, FT_CRAWL_STARTED
und FT_CRAWL_STOPPED
Ereignisse. ALL_EVENTS
umfasst alle DDL-Ereignisse, Ablaufverfolgungsereignisse QUEUE_ACTIVATION
und BROKER_QUEUE_DISABLED
.
Um zu ermitteln, welche Eigenschaften aus einem Ereignis oder einer Ereignisgruppe abgefragt werden können, konsultieren Sie das Ereignisschema. Standardmäßig wird das Ereignisschema im folgenden Verzeichnis installiert:
C:\Programme\Microsoft SQL Server\nnn\Tools\Binn\schemas\sqlserver\2006\11\events\events.xsd
Wenn Sie z. B. auf das ALTER_DATABASE
Ereignis verweisen, ist DDL_SERVER_LEVEL_EVENTS
das übergeordnete Ereignis und seine Eigenschaften TSQLCommand
und DatabaseName
. Das Ereignis erbt auch die Eigenschaften SQLInstance
, PostTime
, ComputerName
, SPID
und LoginName
. Das Ereignis verfügt über keinen untergeordneten Ereignisse.
Hinweis
Gespeicherte Systemprozeduren, die DDL-ähnliche Vorgänge ausführen, können auch Ereignisbenachrichtigungen auslösen. Testen Sie die Ereignisbenachrichtigungen, um ihre Reaktion auf gespeicherte Systemprozeduren, die ausgeführt werden, zu bestimmen. Beispielsweise löst die Anweisung und sp_addtype
die CREATE TYPE
gespeicherte Prozedur eine Ereignisbenachrichtigung aus, die für ein CREATE_TYPE
Ereignis erstellt wird. Weitere Informationen finden Sie unter DDL-Ereignisse.