程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server BI Step by Step SSIS 4 - 合並數據3

SQL Server BI Step by Step SSIS 4 - 合並數據3

編輯:關於SqlServer

本文配套源碼

我們已經介紹了三種方法來實現數據流源和數據庫數據的合並,也就是Excel中的數據和數據庫裡面的 數據進行同步,存在的數據進行更新操作,不存在的添加數據,另外還可以擴展為,如果數據庫為的數據在 Excel數據源中不存在,則執行刪除操作.接下來我們來介紹其它的方法來實現這樣的目標. 

我們 在合並數據1中曾經介紹過,直接通過Merge和Merge Jone是無法直接實現的,不過我們可以通過變通的方 法實現.首先我們新建一個包MergeDataMerge,像之前一樣,象上次一樣,准備控制流,變量和連接管理器. 其實前面和合並數據1中的MergeData2一樣,將Excel數據源和數據庫表數據根據ProductNumber字段進行 合並.

這裡我們選的是完全外部連接,這樣才能完全合並兩邊的數據.當一方數據沒有匹配的數據時,有NULL 代替.所以我們直接根據合並後的ProductNumber和NewProductNumber 就可以直接這行數據應該對應的是 添加,更新,還是刪除.在Merge Join組件下面,我們添加Conditional Split組件,這個組件來判斷對於不 同的情況的分支:

很簡單,當行中對應的ProductNumber為NULL時,說明沒有從數據庫時面查到匹配的數據,所以這條數據 應該進行新增操作,當NewProductNumber為NULL時,說明Excel數據源中不存在數據庫中ProductNumber對 應的數據,所以此條數據應該進行刪除,最後,如果兩個ProductNumber相同,則應該進行更新操作.這裡需 要注意的是,一定要把兩個判斷ISNULL的條件放在前面,因為我們在第三個裡面用到了TRIM,如果為NULL值 時,會有錯誤發生.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved