WMI イベント アラートを作成する
適用対象:SQL Server
Azure 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 を使用する
オブジェクト エクスプローラーで、プラス記号 選択して、WMI イベント アラートを作成するサーバーを展開します。
プラス記号を選択して、SQL Server エージェントを展開します。
アラート を右クリックし、新しいアラート を選択します。
[新しいアラート] ダイアログ ボックスの [名前] ボックスに、このアラートの名前を入力します。
[ を有効にする] チェック ボックスをオンにして、アラートの実行を有効にします。 既定では、[ を有効にする] がオンになっています。
[タイプ] リスト で、WMI イベントアラートを選択します。
[WMI イベント 警告の定義] の [名前空間 ボックスで、このアラートをトリガーする WMI イベントを識別する WMI クエリ言語 (WQL) ステートメントの WMI 名前空間を指定します。
クエリ ボックスで、このアラートが応答するイベントを識別する WQL ステートメントを指定します。
[OK]を選択します。
Transact-SQL を使用する
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。
[標準] バーで [新しいクエリ] を 選択します。
次の例をコピーしてクエリ ウィンドウに貼り付け、実行選択します。
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