2012-03-28 17 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誰來檢查該行是否存在,如果存在,它會將數據流發送到目的地。

查找互聯網上如何使用,但要小心,這種成分改變從2005 SSIS 2008 SSIS的行爲,所以一定要尋找2008年的例子

+2

一個很好的起點是Andy Leonard的[集成服務系列的階梯](http://www.sqlservercentral.com/stairway/72494/) – billinkc 2012-03-28 20:34:15

+0

Can Trigger可以做同樣的工作,我的意思是它會更好/最差比查找。我很抱歉,如果我聽起來很愚蠢,但我對這項技術很陌生。 – Zerotoinfinity 2012-03-28 20:39:30

1

這裏的一個普遍的方法是簡單的例子上將原始數據加載到與平面文件具有相同格式的加載表中,然後使用TSQL進一步處理數據並將其插入最終報告表。例如,在這種情況下,您可以使用MERGE statement

相關問題