次の方法で共有


WMI イベント アラートを作成する

適用対象:SQL ServerAzure SQL Managed Instance

大事な

Azure SQL Managed Instance では、SQL Server エージェントのほとんどの機能が現在サポートされているわけではありません。 詳細については、Azure SQL Managed Instance の T-SQL と SQL Server の違いの を参照してください。

この記事では、SQL Server Management Studio または Transact-SQL を使用して、SQL Server の WMI プロバイダー for Server イベントによって監視される特定の SQL Server イベントが発生したときに発生する SQL Server エージェント アラートの方法について説明します。

WMI プロバイダーを使用して SQL Server イベントを監視する方法については、「WMI Provider for Server Events Classes and Properties」を参照してください。 WMI イベント アラート通知を受信するために必要なアクセス許可については、「SQL Server エージェント サービスのアカウントを選択する」を参照してください。 WQL の詳細については、「サーバー イベント用 WMI プロバイダーでの WQL の使用」を参照してください。

制限と制約事項

  • SQL Server Management Studio は、アラート システム全体を管理するための簡単でグラフィカルな方法を提供し、アラート インフラストラクチャを構成するための推奨される方法です。

  • xp_logevent で生成されたイベントは、master データベースで発生します。 そのため、アラートの @database_name'master' または NULL でない限り、xp_logevent はアラートをトリガーしません。

  • SQL Server エージェントを実行するコンピューター上の WMI 名前空間のみがサポートされています。

権限

既定では、sysadmin 固定サーバー ロールのメンバーのみが sp_add_alert実行できます。

SQL Server Management Studio を使用する

  1. オブジェクト エクスプローラーで、プラス記号 選択して、WMI イベント アラートを作成するサーバーを展開します。

  2. プラス記号を選択して、SQL Server エージェントを展開します。

  3. アラート を右クリックし、新しいアラート を選択します。

  4. [新しいアラート] ダイアログ ボックスの [名前] ボックスに、このアラートの名前を入力します。

  5. [ を有効にする] チェック ボックスをオンにして、アラートの実行を有効にします。 既定では、[ を有効にする] がオンになっています。

  6. [タイプ] リスト で、WMI イベントアラートを選択します。

  7. [WMI イベント 警告の定義] の [名前空間 ボックスで、このアラートをトリガーする WMI イベントを識別する WMI クエリ言語 (WQL) ステートメントの WMI 名前空間を指定します。

  8. クエリ ボックスで、このアラートが応答するイベントを識別する WQL ステートメントを指定します。

  9. [OK]を選択します。

Transact-SQL を使用する

  1. オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。

  2. [標準] バーで [新しいクエリ] を 選択します。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、実行選択します。

    USE msdb;
    GO
    
    EXEC dbo.sp_add_alert @name = N'Test Alert 2',
        @message_id = 54001,
        @notification_message = N'Error 54001 has occurred on the Sales.SalesOrderDetail table on the AdventureWorks2022 database.',
        @wmi_namespace = '\.\root\Microsoft\SqlServer\ServerEvents',
        @wmi_query = N'SELECT * FROM ALTER_TABLE
    WHERE DatabaseName = ''AdventureWorks2022'' AND SchemaName = ''Sales''
    AND ObjectType=''Table'' AND ObjectName = ''SalesOrderDetail''';
    GO
    

次の手順