2

次のシナリオを想定します。

すべてのデータはSQLServerテーブルにあります。

1)SQL実行タスクを実行して、Table1に対してselectを実行することにより、処理するレコードがあるかどうかを判別します。

2)ある場合は、SQL実行タスクを実行してTable2を切り捨てます。

3)Table1に対する選択の結果を含むTable2をロードするためのデータフロータスク。

これで、ストアドプロシージャで簡単に実行できますが、SSISで実行する必要があります。

これまでのところ、制御フローでは、selectを実行して結果をテーブル変数に格納し、@ ResultSetと呼びます。また、念のため、オブジェクトタイプ変数も作成しました。これもMyResultsと呼びます。結果セットを保持します。

@ResultSetが空の場合にTable2が切り捨てられないようにするために、@ ResultSet内のレコード数をカウントし、カウントがゼロの場合はエラーを発生させて、パッケージを事実上中止します。

通常はそうではありません。Table1に対して同じクエリを繰り返し実行してデータフローを開始する代わりに、他のデータソースと同様に@ResultSetまたはMyResultsオブジェクトにアクセスしたいと思います。

後者はスクリプトタスクを使用して可能になるはずですが、私は本当にその道を進みたくありません。

@ResultSetを使用できるのか、それともあなたの入力によってまったく異なるアプローチを考え出すことができるのか、それが問題です。

TIA。

4

1 に答える 1

0

あなたの質問はこれに直接関係していると思います。SSIS制御フロータスク間でデータソース を渡すデータセット内のあるデータフローから別のデータフローに、または生のファイルを介してデータを渡すことができます。あなたの場合はどちらが良いかを確認するのはあなた次第ですが

于 2012-06-21T14:52:10.387 に答える