0

SQL エージェントで解決しようとしている次のシナリオがあります。

ジョブ 2 は午前 1 時に開始する必要がありますが、ジョブ 1 に依存しています。

特定のステップをスケジュールする方法があるかどうかを調べようとしていますか? そうすれば、ジョブ 2 の代わりに、ステップ 1 に依存するステップ 2 を作成し、後でスケジュールすることができます。

あるいは、テーブルを作成して依存関係を判断できることもわかっています。SQL Server エージェント ジョブの依存関係に似ています。ただし、スケジュールされた時間までにジョブ 1 がまだ終了していない場合、ジョブ 2 が後の間隔で再実行を試みるように十分にインテリジェントにすることを検討しています。

4

1 に答える 1

2

さまざまなアプローチがあります。

一つは

1) ジョブ 1 の最後のステップを作成して、ジョブ 2 を開始します。

exec msdb.dbo.sp_start_job @job_name = 'enter you job name here'

2) ジョブ 2 の最初のステップは TSQL コマンドである必要があります

WIATFOR DELAY xx:yy:zz

xx,yy,zz の値は、現在と必要な午前 1 時との時差として計算する必要があります。

NOW() が午前 1 時より大きい場合は、手順 1 を終了 (完了) して、手順 2 をすぐに実行します。

この場合のジョブ 2 はスケジュールしないでください。

別の方法

ジョブ 2 では、WHILE ループの最初のステップでジョブ 1 のステータスをチェックします (コードはオンラインで簡単に見つけることができます)。ループの終了条件は、ジョブ 1 が完了したときです。

于 2016-09-01T00:41:52.313 に答える