伺服器事件類別和屬性的 WMI 提供者
適用於:SQL Server
事件有兩個主要類別,組成 WMI 提供者伺服器事件的程式設計模型,可藉由對提供者發出 WQL 查詢來查詢。 這些是資料定義語言 (DDL) 事件,以及追蹤事件。 QUEUE_ACTIVATION
您也可以查詢 和 BROKER_QUEUE_DISABLED
Service Broker 事件。
事件和事件群組
若要取得伺服器事件的完整清單,請使用下列 Transact-SQL 腳本來查詢 sys.event_notification_event_types
目錄檢視。
; 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_ASSEMBLY
、 CREATE_ASSEMBLY
和 DROP_ASSEMBLY
事件。 同樣地, TRC_FULL_TEXT
事件包含任何 FT_CRAWL_ABORTED
、 FT_CRAWL_STARTED
和 FT_CRAWL_STOPPED
事件。 ALL_EVENTS
涵蓋所有 DDL 事件、追蹤事件、 QUEUE_ACTIVATION
與 BROKER_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 事件。