0

Excel シート (iSeries データベースからエクスポートされたもの) から SQL テーブルにデータをインクリメンタルにロードする SSIS パッケージを作成しています。 、用語ルックアップを実行することでそれが行われるのを見たので、用語ルックアップをセットアップしました。発生した問題は、複数の列を一致させて一意の行を比較する必要があることです (以下の例では、少なくとも Parent、2nd、および RoutingCode に一致する)、および Term Lookup 変​​換では 1 つの列のみを一致させることができます。理論的には、成功した一致を 2 回目の検索と 3 回目の検索に出力できますが、それは遠回しの解決策のように思えます。また、多数の入力行があるとパフォーマンスが低下する可能性があるため、経験豊富な DBA からの提案を探しています。

サンプルデータ:

Parent  2nd Itm#    3rd Itm#    Routing Code   UpdatedColumn
------- ----------- ----------- -------------- -------------
921221  TF2-14511   TF2-14511   PLANNING       1568
921221  TF2-14511   TF2-14511   COAT&CAP       14545
921221  TF2-14511   TF2-14511   S.S 0-OVERLAPS 45556
842568  TF2-14511   TF2-14511   PLANNING       4545
4

1 に答える 1

3

Excel スプレッドシートから SQL Server データベースのステージング テーブルにデータを読み込みます。次に、クエリまたはストアド プロシージャ (理想的にはストアド プロシージャ) を使用して、ステージング テーブルと、データを挿入または更新する宛先との間のデータを比較します。SQL Server 2008 以降を使用している場合は、ソース テーブルとターゲット テーブルをレコードと比較できるステートメントを利用できますMERGEINSERTUPDATE

MERGE を使用したデータの挿入、更新、および削除

を使用して、Excel から SQL Server ステージング テーブルにデータを読み込むことができますData Flow Task。制御フローでは、データ フロー タスクの後に を配置して、ステートメントExecute SQL Taskを含むストアド プロシージャを呼び出すことができます。MERGE

于 2012-11-07T21:39:00.070 に答える