2016-11-04 19 views
0

私は、2つのジョブステップ:PackageAとPackageBを持つSQLジョブエージェントを持っています。 PackageBはPackageAに従いますが、PackageBは06:00〜18:00に実行しないでください。 残念ながら、PackageAが6時から18時の間に実行されるのに時間がかかることがあります。 パッケージBでは、時刻が06:00から18:00の間であるかどうかを調べる制約+式があります。そうであれば、Pac​​kageBは素早く終了し、PackageBを再スケジュールするように催促する電子メールを操作者に送信する。 しかし、パッケージを再スケジュールすることができれば、非常に良いものになります。 PackageBでSSISパッケージ内から単一のパッケージをスケジュールする

ロジック:

ExpressionTask --> fills variable @Hour with datepart("Hh",GETDATE()) 

た値が< 6または> 18「正常な」手順が実行されているか、それは電子メールを送信 'と終了起動した場合。 私が望むのは、PackageBが19:00に同じ晩に一度実行されるように電子メールを送信した後にコマンドを追加することです。理想的には、packageBを実行するだけのジョブがあるかどうかチェックし、19:00にその夕方に実行するようにスケジュールし、PackageBを実行するための既存の ジョブが存在しない場合は作成する必要があります。

私の感想は、これはTSQLを使用して実行可能でなければならないと感じています。任意の提案またはTSQLを使用する以外にそれを行う良い方法がありますか?

私と一緒に思考するためのThanx!

答えて

1

あなたがPackageAPackageBや時間をチェックし、午後七時まで待つWAITFORステートメントを使用してSSISでのSQLタスクの実行の間にT-SQLジョブステップを実装することができます。

IF DATEPART(HOUR, SYSDATETIME()) >= 6 OR DATEPART(HOUR, SYSDATETIME()) < 18 
BEGIN 
    WAITFOR TIME '19:00'; 
END; 
+0

非常に良いアイデアは、 – Henrov

関連する問題