[SQL SERVER][SSIS]Multiple Excel Sheets 2 SQL

[SQL SERVER][SSIS]Multiple Excel Sheets 2 SQL

Excel絕大部分是User的最愛,但小弟我就是對Excel很感冒(每位user都有自己的Style,心中就會~~暗!暗!)

但在衣食父母前你不得不低頭,所以今天小弟將使用SSIS操作Multiple Excel Sheets 2 SQL整個過程

 

先查看Excel檔案內容

Sheet1:9筆資料

image

Sheet2:30筆資料

image

Sheet3:65299筆資料(還沒超出Excel2003限制)

image

馬上就來導入SQL Server摟

 

建立資料來源

image

控制流程拉入相關元件(如下圖)

image

新增兩個變數(後面需要對應變數)

image

編輯第一個資料流程工作,並拉入相關元件(如下圖)

image

編輯指令碼元件(Get sheet name)

新增一個輸出資料行:colsheet,類型:字串

image

點選連接管理員並新增連接管理員

image

編輯指令碼

image

編寫程式碼(如下圖)

image

編輯資料錄集目的地並設定自訂義變數:User::objsheets

image

切換輸入資料行頁籤並加入指令碼所輸出資料行:colsheet

image

編輯Foreach元件並設定相關屬性選項(如下圖)

image

image

編輯第二個資料流程工作,並設定存取模式:從變數openrowset

image

編輯Excel來源並選取變數名稱

image

編輯SQL Server目的地

image

執行(F5)

image

結果如下:

image

image

就這樣小弟的SSIS2008體驗也告一段落了,後面就等任務下來有問題再繼續研究了(我太懶了XD)。

 

SSIS2008心得:

不得不承認SSIS比ODI好上手多了,但SSIS絕不是簡單的產品,涉及技術繁多(.NET、SMO、Xpath...等)

ETL平台來說,SSIS提供強大的功能性與延伸性,讓使用者可以針對特殊需求自己透過程式語言來開發整合

看來透過SSIS處理ETL可以讓小弟我提高不少生產力(有時會偷偷用winform~~XD)。不過當時小弟玩ODI有個強大的功能

"CDC"(Change Data Capture),但SSIS我好像沒發現到~~anyway,其碼SSIS能夠快速完成ETL工作任務

那才不枉費我這四天所花的時間。