WMI Provider for Server Events のクラスとプロパティ

適用対象: SQL サーバー

WMI Provider for Server イベントのプログラミング モデルを構成するイベントには、主に 2 つのカテゴリがあります。これは、プロバイダーに対して 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_ASSEMBLYCREATE_ASSEMBLY、および DROP_ASSEMBLY イベントが含まれます。 同様に、 TRC_FULL_TEXT イベントには、任意の FT_CRAWL_ABORTEDFT_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されます。 また、プロパティ SQLInstancePostTimeComputerNameSPID、および LoginName が継承されています。 イベントには、子イベントはありません。

Note

DDL と同様の操作を実行するシステム ストアド プロシージャもイベント通知を起動できます。 イベント通知はテストして、実行されているシステム ストアド プロシージャに応答するかどうか、確認してください。 たとえば、 CREATE TYPE ステートメントとストアド プロシージャ sp_addtype 両方が、 CREATE_TYPE イベントに対して作成されたイベント通知を発生します。 詳細については、「 DDL イベント」を参照してください。