2012-03-28 8 views
0

テキストとExcelファイルが少なく、そこからSQL Serverテーブルにデータをインポートする必要があります。今私の問題は、テーブルがすでに私がフラットファイルまたはExcelファイルからインポートしているものと同じ行を持っているかもしれないということです。テーブルの行をフラットファイルから挿入/更新する

したがって、テーブルに既に存在する行を検証してリダイレクトするにはどうすればよいですか。

例:

フラットファイル

6, test1, bak 
7, test2, nim 
8, test3, kol 

表_製品

Id (*Not a primary key*) Name code 
1      ttest hyt 
2      jtest jte 
7      test2 nim 
6      ttt bak 

(列値のいずれかが変更されているため)は、フラット・ファイルから行6が更新され、行7は挿入/更新されず(既に存在しているため)、8行目が挿入されます。

答えて

2

oleDBSourceとOleDBDestinationの設定方法を知っていると思いますか?唯一の違いは、途中で行が存在するかどうかを確認するLookup Transformationを追加する必要があり、そうであれば宛先にデータフローを送信することです。

使用する方法の簡単な例については、インターネット上のように見えますが、SSIS 2008にSSIS 2005から変更され、このコンポーネントの動作はので、ここで2008例

+2

Andy Leonardの[Stairway to Integration Servicesシリーズ](http://www.sqlservercentral.com/stairway/72494/) – billinkc

+0

トリガーは同じ仕事をすることができますが、それは良い/悪いルックアップより。私が愚かに聞こえるとすみませますが、私はこの技術を非常に熟知しています。 – Zerotoinfinity

1

共通のアプローチを探していることを確認してくださいということに注意する必要ありフラットファイルと同じ形式のローディングテーブルにローデータをロードし、TSQLを使用してデータをさらに操作し、最後のレポートテーブルにINSERTします。この場合、たとえばMERGE statementを使用できます。

関連する問題