Create an Alert Using Severity Level

適用対象:SQL ServerAzure SQL Managed Instance

重要

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

このトピックでは、SQL Server Management Studio または Transact-SQL を使用して、SQL Server で特定の重大度レベルのイベントが発生したときに発生する Microsoft SQL Server エージェント警告を作成する方法について説明します。

はじめに

制限事項と制約事項

  • SQL Server Management Studio では、簡単かつグラフィカルに警告システム全体を管理でき、警告インフラストラクチャを構成するのにお勧めです。

  • xp_logevent で生成されたイベントは master データベースで発生します。 このため、 xp_logevent では、警告の @database_name'master' または NULL になっていないと、警告が起動されません。

  • 重大度レベルが 19 ~ 25 の場合、SQL Server メッセージが Microsoft Windows アプリケーション ログに送信されて、警告が発動されます。 重大度レベルが 19 未満のイベントでは、 sp_altermessage、RAISERROR WITH LOG、 xp_logevent のいずれかを使用して Windows アプリケーション ログへの書き込みを強制した場合にのみ、警告が起動されます。

セキュリティ

アクセス許可

既定では、 sp_add_alert を実行できるのは、 sysadmin固定サーバー ロールのメンバーだけです。

SQL Server Management Studio を使用する

重大度レベルを使用して警告を作成するには

  1. オブジェクト エクスプローラー で、プラス記号をクリックして、重大度レベルを使用した警告を作成するサーバーを展開します。

  2. プラス記号をクリックして [SQL Server エージェント]を展開します。

  3. [警告] を右クリックし、 [新しい警告]をクリックします。

  4. [新しい警告] ダイアログ ボックスで、 [名前] ボックスに新しい警告の名前を入力します。

  5. [種類] ボックスの一覧の [SQL Server イベント警告]をクリックします。

  6. [イベント警告定義]で、 [データベース名] ボックスの一覧からデータベースを選択して、警告を特定のデータベースに限定します。

  7. [警告が発生する条件][重大度] をクリックし、警告を発生させる重大度を選択します。

  8. 特定の文字列が含まれている場合のみ警告を生成するには、 [メッセージに次の内容が含まれている場合に警告する] チェック ボックスをオンにし、 [メッセージ テキスト]ボックスにキーワードまたは文字列を入力します。 最大文字数は 100 文字です。

  9. [OK] をクリックします。

Transact-SQL の使用

重大度レベルを使用して警告を作成するには

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

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

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

    -- Adds an alert (Test Alert) that notifies the
    -- Alert Operator via email when an error with a 
    -- severity of 23 is detected.
    
    -- Assumes that the Alert Operator already exists 
    -- and that database mail is configured.
    
    USE msdb ;  
    GO  
    
    EXEC dbo.sp_add_alert @name=N'Test Alert', 
      @message_id = 0, 
      @severity = 23, 
      @enabled = 1, 
      @include_event_description_in = 1
    ;
    GO
    
    EXEC dbo.sp_add_notification @alert_name=N'Test Alert',
      @operator_name=N'Alert Operator',
      @notification_method=1
    ;
    GO
    
    

詳細については、「 sp_add_alert (Transact-SQL)」を参照してください。