Поделиться через


Поставщик WMI для классов и свойств событий сервера

Область применения: SQL Server

Существует две основные категории событий, составляющих модель программирования для поставщика WMI для событий сервера, которые можно запросить путем выдачи WQL-запросов к поставщику. Это события языка определения данных (DDL) и события трассировки. Можно QUEUE_ACTIVATION также запрашивать события и BROKER_QUEUE_DISABLED события компонента service broker.

События и группы событий

Чтобы получить полный список событий сервера, выполните запрос sys.event_notification_event_types к представлению каталога со следующим скриптом Transact-SQL.

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

Замечания

НапримерDDL_ASSEMBLY_EVENTS, событие включает любое ALTER_ASSEMBLYCREATE_ASSEMBLYсобытие и DROP_ASSEMBLY событие. Аналогичным образом TRC_FULL_TEXT событие включает любое FT_CRAWL_ABORTEDFT_CRAWL_STARTEDсобытие и FT_CRAWL_STOPPED событие. ALL_EVENTSохватывает все события DDL, события трассировки и QUEUE_ACTIVATIONBROKER_QUEUE_DISABLED.

Сведения о том, к каким свойствам может быть выполнен запрос из события или группы событий, см. в схеме события. По умолчанию схема событий устанавливается в следующем каталоге:

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

Например, ссылаясь на событие, его родительское ALTER_DATABASE событие — DDL_SERVER_LEVEL_EVENTS это и его свойстваTSQLCommand.DatabaseName Событие также наследует свойства SQLInstance, PostTime, ComputerName, SPID и LoginName. Это событие не имеет дочерних событий.

Примечание.

Системные хранимые процедуры, выполняющие DDL-подобные операции, также могут запускать уведомления о событиях. Протестируйте свои уведомления о событиях, чтобы определить их реакцию на системные хранимые процедуры. Например, CREATE TYPE инструкция и sp_addtype хранимая процедура будут запускать уведомление о событии, созданное в событии CREATE_TYPE . Дополнительные сведения см. в разделе "События DDL".