2012-03-29 4 views
1

ssisパッケージが終了するたびにストアドプロシージャを実行する方法が必要です。SSISパッケージが終了したときのイベント(または何か)

かかわらず、それは失敗か成功かどう。

自分のタスクのそれぞれから障害イベントを接続せずにこれを行う方法はありますか?私はOnPackageEndイベントなどを探していましたが、私はそれを見ることができません。

あなたのアイデアはありますか?

+1

何か注意しなければならないことは、パッケージの検証に失敗する条件があることです(本質的にコンパイル時エラーです)。パッケージにエラー検出ロジックがある場所にかかわらず、パッケージの検証に失敗した場合、エラー処理ブロックを実行するのに十分長く実行することはできません。そして、理論的には*テーブルは10日間ロードされず、賃金スタブを生成することができないため、怒っている販売人と会計士がいます。このような仮説的なシナリオでは、SQL Agentのアラートオプションのようなバックアップエラー通知メカニズムが必要になります – billinkc

答えて

2

さて私は、最も簡単な方法は、あなたが失敗しただけでなく、成功した場合に次のステップに行くことができることが指定でき、パッケージを実行するジョブinthe第二段階としてprocのfoのexcutionを追加することだと思います。

または、exec SQlタスクを実行して、プロセスの最後に(成功ブランチを取得する)パッケージを実行し、すべての失敗のイベントハンドラに配置します(イベントハンドラは、パケッ個々のステップ)、我々は同じptocを実行するが、失敗や成功の場合には異なる入力値を使用する1つのステップでこれを行います。

3

パッケージでは、すべてのタスクをコンテナに入れます。コンテナの下には、実行プロシージャタスクを配置し、優先順位制約には値を「完了」として選択します(行は青色で、デフォルトでは緑色になります)。したがって、パッケージの状態(成功または失敗)にかかわらず、格納されたprocが実行されます。

0

あなたはシーケンスコンテナ内のすべてのあなたの現在のコンポーネントを追加し、緑色の矢印をドラッグ可能パッケージのイベントハンドラonPostExecuteを作成し、そこにSQLタスクを実行

OR

にPROCを追加することができます新しいプロシージャでSQLタスクコンポーネントを実行します。 ダブル緑色の矢印をクリックして、「完了」の代わりに「成功」​​

0

OnPostExecuteは、すべてのタスクのために実行されますを選択します。このため、OnPackageEndのようなイベントが必要な要件には適していません。

関連する問題