次の方法で共有


ジョブステータスをWindowsアプリケーションログに書き込む

適用対象:SQL ServerAzure SQL Managed Instance

重要

Azure SQL Managed Instance では、SQL Server エージェントのほとんどの機能が現在サポートされているわけではありません。 詳細については、Azure SQL Managed Instance T-SQL と SQL Server の違いに関するページ、または「SQL Managed Instance 内での SQL Agent ジョブの制限事項」を参照してください。

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

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

  • 電子メール、電子ページング、または ネット送信 メッセージを使用してオペレーターに通知します。 オペレーターがフォローアップ・アクションを実行する必要がある場合は、これらのジョブ応答のいずれかを使用します。 たとえば、バックアップ ジョブが正常に完了した場合、バックアップ テープを削除して安全な場所に保存するようにオペレーターに通知する必要があります。

  • 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