SSIS は、パイプラインの概念を使用して DataFlow タスクを編成します。ソースから宛先へのデータ フローと、このデータの処理はその間で行われます。ストアド プロシージャでの処理結果をパラメーターとして使用するため、パイプラインの概念では実行できません。SPもデータで何かを行うため、SPは実際にはデータの宛先ではありません。
インメモリRecordset
(宛先) にデータを入力し、ForEach ループ コンテナーを使用して、レコードセットの行ごとに SP を実行できます。
アップデート
パッケージは次のようになります。
データ フロー タスク: Access への OLE DB 接続 SQL Server への OLE DB 接続 2 つのデータ ストリームを結合するには、UNOIN タスクを使用します。レコードセット データを保持します。
ForEach ループ コンテナー。プロパティで、ループ コンテナーのタイプ - ADO Recorset を選択し、ループ プロパティで MyRecordsetVar 変数を指定します。レコードセットの各列のデータを保持するために、さらに 2 つ (または必要な数) の変数を割り当てます。レコードセットの各行のデータがこれらの変数に渡されます。一度に 1 行ずつ。
ループ内に Execute SQL タスクを配置します。タスクの入力「メニュー」で、レコードセットの列からのデータを持つ INPUT 変数を指定します。あなたはそれを行う方法を知っていると思います。
クエリを としてタスクに入れますexecute sp_MyProc ?,?
。
これでいいはずです。