本文配套源碼
上次我們並沒有實現Excel中的數據與數據庫中的數據進行整合,存在即更新,不存在即插入.這次主要 介紹幾種方法來實現:
1.使用Lookup
2.使用execute SQL task調用存儲過程
3. 使用script component腳本實現
4.使用MERGE 語句(SQL SERVER 2008)
5.使用上次我們 用到的Merge來實現
6.使用第三方組件SCD Component
看起來能夠實現的方法確實不少, 我們來一一介紹,介紹的同時也會介紹一些組件的應用,同理在我們實現其它功能時,也可以同樣使 用.
Lookup
新建一個包MergeDataLookUp,我們把ForeachInput中的復制過來,我們實現遍 歷Excel的同時,實現Excel中的數據與數據庫中的數據合並,在數據流中,在Excel數據源的下面,刪除原來 的組件,拖入LookUp組件,選擇OLE DB連接後,進行查找的設置:
可以看到,我們是根據Excel數據中的ProductNumber字段去數據庫中查找對應的數據(列ProductID), 即找到對應的數據時,ProductID會作為新列添加到我們的數據流中,找不到時則會出現錯誤,點擊上面的 標出的配置錯誤輸出,
這樣對於Lookup的兩個輸出,正常的輸出也就是找到了ProductNumber對應的數據,此時做更新操作.上 圖中我們已經進行了配置,當某一行沒有找到時,我們將這行數據重新定行到錯誤輸出,此時再進行插入操 作.我們在正常的輸出上添加OLE DB Command,來執行我們的Update語句.