適用対象:SQL Server
Azure SQL Managed Instance
重要
Azure SQL Managed Instance では、SQL Server エージェントのほとんどの機能が現在サポートされているわけではありません。 詳細については、Azure SQL Managed Instance T-SQL と SQL Server の違いに関するページ、または「SQL Managed Instance 内での SQL Agent ジョブの制限事項」を参照してください。
Microsoft SQL Server エージェント ジョブを作成するときに、ジョブの実行中にエラーが発生した場合に SQL Server が実行するアクションを指定できます。 各ジョブ ステップの成功または失敗に対して SQL Server が実行する必要があるアクションを決定します。 次の手順を使用して、SQL Server エージェントを使用してジョブ ステップ アクション フロー ロジックを構成します。
開始する前に
安全
詳細については、「SQL Server エージェント セキュリティの実装」を参照してください。
SQL Server Management Studio の使用
ジョブ ステップの成功または失敗のフローを設定するための手順
オブジェクト エクスプローラーので、SQL Server エージェントを展開し、ジョブを展開します。
編集するジョブを右クリックし、[プロパティ] 選択します。
[ステップ] ページを選び、ステップを選んで、[編集] を選択します。
[ジョブ ステップのプロパティ ] ダイアログ ボックスで、[詳細設定 ] ページを選択します。
[成功時アクション] 一覧で、ジョブ ステップが正常に完了した場合に実行するアクションを選択します。
[再試行] ボックスに、失敗したと見なされるまでにジョブ ステップを繰り返す必要がある回数を 0 から 9999 まで入力します。 [再試行] ボックスに 0 より大きい値を入力した場合は、[再試行間隔 (分)] ボックスに、ジョブ ステップが再試行されるまでに経過する必要がある 1 から 9999 までの分数を入力します。
[失敗時アクション] 一覧で、ジョブ ステップが失敗した場合に実行するアクションを選択します。
ジョブが Transact-SQL スクリプトの場合は、次のオプションから選択できます。
[出力ファイルの] ボックスに、スクリプト出力の書き込み先となる出力ファイルの名前を入力します。 既定では、ジョブ ステップが実行されるたびにファイルが上書きされます。 出力ファイルを上書きしない場合は、既存のファイル に出力を追加するをオンにします。
ジョブ ステップをデータベース テーブルにログする場合は、[テーブルにログする] チェック ボックスをオンにします。 既定では、ジョブ ステップが実行されるたびにテーブルの内容が上書きされます。 テーブルの内容を上書きしたくない場合は、テーブル の既存のエントリに出力を追加にチェックを入れます。 ジョブ ステップの実行後、[ビュー]をクリックして、このテーブルの内容を表示できます。
出力をステップの履歴に含める場合は、[履歴にステップ出力を含める] チェック ボックスをオンにします。 出力は、エラーがない場合にのみ表示されます。 また、出力が切り捨てられる場合もあります。
ユーザーとして実行 一覧が使用可能な場合は、ジョブで使用する資格情報を持つプロキシ アカウントを選択します。
Transact-SQL の使用
ジョブ ステップの成功または失敗のフローを設定するための手順
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。
標準バーで 新しいクエリを選択します。
次の例をコピーしてクエリ ウィンドウに貼り付け、実行選択します。
USE msdb; GO EXEC sp_add_jobstep @job_name = N'Weekly Sales Data Backup', @step_name = N'Set database to read only', @subsystem = N'TSQL', @command = N'ALTER DATABASE SALES SET READ_ONLY', @on_success_action = 1; GO
詳細については、sp_add_jobstep (Transact-SQL)を参照してください。
SQL Server 管理オブジェクトの使用
ジョブ ステップの成功または失敗のフロー を設定するには
Visual Basic、Visual C#、PowerShell など、選択したプログラミング言語を使用して、JobStep クラスを使用します。 詳細については、「SQL Server 管理オブジェクト (SMO)を参照してください。