Write the Job Status to the Windows Application Log

適用対象: SQL Server Azure SQL Managed Instance

重要

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

このトピックでは、SQL Server で SQL Server Management Studio、Transact-SQL、または SQL Server 管理オブジェクトを使用して、ジョブの状態を Windows アプリケーションのイベント ログに書き込むように Microsoft SQL Server エージェントを構成する方法について説明します。

ジョブ応答により、データベース管理者はジョブの完了日時や実行頻度を確認できます。 以下に、一般的なジョブ応答を示します。

  • 電子メール、ポケットベル、または net send メッセージによってオペレーターに通知します。 オペレーターが事後の作業を実行する必要がある場合に、これらのジョブ応答のいずれかを使用します。 たとえば、バックアップ ジョブが正常に終了した場合、オペレーターは、バックアップ テープを取り出して、安全な場所に保管するように通知を受ける必要があります。

  • Windows アプリケーション ログにイベント メッセージを書き込みます。 この応答は、失敗したジョブに対してのみ使用できます。

  • ジョブを自動的に削除します。 このジョブを再実行する必要がないことが明らかな場合に、このジョブ応答を使用します。

はじめに

セキュリティ

詳細については、「 SQL Server エージェントのセキュリティの実装」をご覧ください。

SQL Server Management Studio を使用する

ジョブの状態を Windows アプリケーション ログに書き込むには

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

  2. [SQL Server エージェント]を展開し、 [ジョブ]を展開します。次に、編集するジョブを右クリックし、 [プロパティ]をクリックします。

  3. [通知] ページをクリックします。

  4. [Windows アプリケーション イベント ログに書き込む]チェック ボックスをオンにし、次のいずれかを選択します。

    • ジョブが正常終了したときにジョブの状態をログに記録する場合は、 [ジョブ成功時] をクリックします。

    • ジョブが異常終了したときにジョブの状態をログに記録する場合は、 [ジョブ失敗時] をクリックします。

    • 終了の状態にかかわらずジョブの状態をログに記録する場合は、 [ジョブ完了時] をクリックします。

SQL Server 管理オブジェクトの使用

ジョブの状態を Windows アプリケーション ログに書き込むには

Visual Basic、Visual C#、PowerShell などのプログラミング言語で Job クラスの EventLogLevel プロパティを呼び出します。

次のコード例では、ジョブの実行の終了時に、オペレーティング システムのイベント ログ エントリを生成するようにジョブを設定します。

PowerShell

$srv = new-object Microsoft.SqlServer.Management.Smo.Server("(local)")  
$jb = new-object Microsoft.SqlServer.Management.Smo.Agent.Job($srv.JobServer, "Test Job")  
$jb.EventLogLevel = [Microsoft.SqlServer.Management.Smo.Agent.CompletionAction]::Always