Freigeben über


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_ASSEMBLYEreignis CREATE_ASSEMBLYund ein DROP_ASSEMBLY Beliebiges Ereignis. Ebenso umfasst das TRC_FULL_TEXT Ereignis alle FT_CRAWL_ABORTED, FT_CRAWL_STARTEDund FT_CRAWL_STOPPED Ereignisse. ALL_EVENTS umfasst alle DDL-Ereignisse, Ablaufverfolgungsereignisse QUEUE_ACTIVATIONund 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.