web-dev-qa-db-ja.com

システム制御フローでタスクを選択的に実行する

一連のSQL実行タスクを含む制御フローを持つSSISパッケージがあります。

各タスクのフラグを確認し、設定されている場合はタスクを実行し、そうでない場合はスキップして次のタスクに進む必要があります。

これらの各タスクは、ストアドプロシージャを実行します。だから私はprocをチェックインし、設定されていない場合は「戻る」ことができます。 「SSIS」ソリューションを探していました。

TIA

PS

30
ps.

制御フロータスク間で、矢印をクリックして[編集]を選択します。これを行うと、タスクの「制約」(成功、完了、または失敗)、「式」(つまり、sql実行タスクに値を返させ、その値を保存させることができる)を確認できるダイアログが表示されます。変数、および式内のその変数の値をチェックして、編集中のパスを続行するかどうかを判断します)、「式と制約」、および「式または制約」。これらの最後の2つは、ロジックを除いて同じです。 「式と制約」は式と制約の両方で真の条件を必要とし、「式または制約」は式と制約の一方のみで真の条件を必要とします。

34
William Salzman

あなたの質問は、私の制御フローで「インライン」でタスクの実行を制御したい私の質問と同じだったと思います。

私が見つけた最も簡単な方法は、制御フローオブジェクト間のデータコネクタでの式ではなく、制御オブジェクト自体で式を使用し、式を使用して「無効」値を設定することです。このように実行すると、オブジェクトはスキップされるか、式の評価に基づいていません。

例として、「ExtractType」という名前の変数が「Full」に等しいかどうかに基づいてインデックスを削除するために「Execute SQL Task」を実行したかった。その場合、フルロードを実行する前にテーブルのインデックスを削除する必要がありました。

50
Amos Wood