次のシナリオを想定します。
すべてのデータはSQLServerテーブルにあります。
1)SQL実行タスクを実行して、Table1に対してselectを実行することにより、処理するレコードがあるかどうかを判別します。
2)ある場合は、SQL実行タスクを実行してTable2を切り捨てます。
3)Table1に対する選択の結果を含むTable2をロードするためのデータフロータスク。
これで、ストアドプロシージャで簡単に実行できますが、SSISで実行する必要があります。
これまでのところ、制御フローでは、selectを実行して結果をテーブル変数に格納し、@ ResultSetと呼びます。また、念のため、オブジェクトタイプ変数も作成しました。これもMyResultsと呼びます。結果セットを保持します。
@ResultSetが空の場合にTable2が切り捨てられないようにするために、@ ResultSet内のレコード数をカウントし、カウントがゼロの場合はエラーを発生させて、パッケージを事実上中止します。
通常はそうではありません。Table1に対して同じクエリを繰り返し実行してデータフローを開始する代わりに、他のデータソースと同様に@ResultSetまたはMyResultsオブジェクトにアクセスしたいと思います。
後者はスクリプトタスクを使用して可能になるはずですが、私は本当にその道を進みたくありません。
@ResultSetを使用できるのか、それともあなたの入力によってまったく異なるアプローチを考え出すことができるのか、それが問題です。
TIA。