3

月曜日から金曜日の特定の時間に実行するようにスケジュールされている複数のステップを持つ SQL エージェント ジョブがあります。表に記載されている休日に実行されないようにするには、このジョブに停止機能を実装できる必要があります。

これをどのように進めればよいのか、私にはよくわかりません。休日かどうかを確認し、休日の場合はジョブを失敗させる最初のステップを作成する必要がありますか?

渡す日付をチェックして休日かどうかを確認するストアド プロシージャがありますが、結果が「はい」の場合に強制的に失敗を報告する方法がわかりません。どんな助けでも大歓迎です。

4

1 に答える 1

5

考え:

  1. SQL Server エージェントがジョブを実行します
  2. 第1ステップは「休日の確認」
  3. コードがエラーをスローします
  4. ジョブ ステップがサイレントに失敗する

ポイント 3: ストアド プロシージャから SQL Server エージェントへのエラーを取得するには、RAISERRORを使用します。

...
IF EXISTS (SELECT * FROM Holidays WHERE Date = GETDATE())
   RAISERROR ('Do nothing: relax: chill out', 16, 1);
...

ポイント 4: この場合、 sp_add_jobstep@on_fail_actionへのパラメータには「成功して終了」(1) を使用します。

于 2011-10-04T10:48:29.477 に答える