Upravit

Sdílet prostřednictvím


WMI Provider for Server Events classes and properties

Applies to: SQL Server

There are two main categories of events that make up the programming model for the WMI Provider for Server Events, which can be queried by issuing WQL queries against the provider. These are data definition language (DDL) events, and trace events. The QUEUE_ACTIVATION and BROKER_QUEUE_DISABLED service broker events can also be queried.

Events and event groups

To get a full list of server events, query the sys.event_notification_event_types catalog view with the following Transact-SQL script.

; 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;

Remarks

The DDL_ASSEMBLY_EVENTS event, for example, includes any ALTER_ASSEMBLY, CREATE_ASSEMBLY, and DROP_ASSEMBLY event. Similarly, the TRC_FULL_TEXT event includes any FT_CRAWL_ABORTED, FT_CRAWL_STARTED, and FT_CRAWL_STOPPED event. ALL_EVENTS covers all DDL events, trace events, QUEUE_ACTIVATION, and BROKER_QUEUE_DISABLED.

To learn which properties can be queried from an event or event group, refer to the event schema. By default, the event schema is installed in the following directory:

C:\Program Files\Microsoft SQL Server\nnn\Tools\Binn\schemas\sqlserver\2006\11\events\events.xsd

For example, by referring to the ALTER_DATABASE event, its parent event is DDL_SERVER_LEVEL_EVENTS and its properties are TSQLCommand and DatabaseName. The event also inherits the properties SQLInstance, PostTime, ComputerName, SPID, and LoginName. The event has no children events.

Note

System stored procedures that perform DDL-like operations can also fire event notifications. Test your event notifications to determine their responses to system stored procedures that are run. For example, the CREATE TYPE statement and sp_addtype stored procedure will both fire an event notification that is created on a CREATE_TYPE event. For more information, see DDL Events.