2011-04-06 38 views
0

我是新來的SSIS,並試圖建立一個數據流任務,將完成這種類型的東西:SSIS更新行通過使用包含ID和更新平面文件值

UPDATE dbo.table1 
SET lastname = t2.lastname 
FROM table1 t1 
JOIN table2 t2 
ON t1.Id = t2.Id 

除了我想

ID姓氏
1卡羅爾
2帕特爾
3史密斯

:與在這樣的製表符分隔的文件是用於表2中的值做

我不想將ETL表2插入數據庫。

我已用平面文件中的值拉,然後加上一個OLE DB數據目標嘗試,然而,這會導致SSIS到INSERT的值,而不是接合上的ID和UPDATING列出的字段。

用SSIS解決此類更新的正確方法是什麼?

TIA,

崔卡羅爾

回答

1

這是我會怎麼做它:

  1. 設置一個數據流任務,用平面文件作爲來源。
  2. 添加一個查找轉換,並進行設置,以便按id查找表1並返回lastname。
  3. 添加一個執行OLE DB命令轉換到你的「成功」數據流,並執行相應的SQL代碼來更新表1

這種方法的con是,它的每一行執行的SQL命令相匹配,並且數量很高可能效率低下。如果您可以將平面文件加載到臨時表中,然後執行更新,效率會更高。

+0

非常感謝santi。這正是我想要做的。記錄的細節足夠小,我不需要擔心效率問題,但我很欣賞指導。 – 2011-04-19 16:36:59

+0

很高興能有所幫助 – 2011-04-25 10:54:50