これは基本的な問題のように思えますが、私はこれに対する効率的な解決策を得るために何日も髪を引き裂いてきました。
サーバー上に値のルックアップテーブルがあり、C#スクリプトタスクを使用して読み取り、文字列にアセンブルします。この文字列を変数に書き込み、データフローのADO.NETデータソース(読み取りアクセス権しか持たない別のサーバーから)の大きなSQLクエリ内でWHEREパラメーターとして渡します。たとえば、この文字列は次のようになります
('Frank', 'John', 'Markus', 'Tom')
それをWHERE句として追加します。SQLクエリが4000文字を超えているため、ADO.NETデータソースの変数から直接読み取ることができず、'Expression'プロパティを使用してSQLを設定することもできません。SQL実行タスクを使用してクエリを実行し、結果をレコードセットにロードして、レコードセットをループすることもできますが、これは非常に非効率的です。
これを行うための最良の方法は何でしょうか?私の最終目標は、これらの結果を最初のサーバーのテーブル内に配置することです。