SSIS常用的包—使用Bulk Insert執行任務
現在執行一個簡單的bulk insert任務來練習剛才討論的話題。首先創建一個名字為的SSIS項目。將Package.dtsx重新命名為BulkLoadZip.dtsx,如果彈出對話框提示是否重命名選擇是。
首先新建文件夾C:\SSISDemos,將文件(/Files/tylerdonet/ZipCode.txt)放入這個文件夾內。然后在本地新建數據庫,名字使用微軟常用數據庫的名字AdventureWorks,使用下面的代碼新建一個表:
2 ZipCode CHAR(5),
3 State CHAR(2),
4 ZipName VARCHAR(16)
5 )
新建一個SSIS項目,使用默認的package,將它重命名為BulkInsertTask.dtsx,切換到Control Flow界面,從工具欄中分別若放一個Execute SQL Task和Bulk Insert Task。雙擊打開Execute SQL Task的編輯界面,重新命名為Purge InsertContent table,在描述欄內填寫自己想要的描述。
在Connection框創建localhost.AdventureWorks鏈接,在SQLStatemen框內填寫下面的SQL語句:
最終界面如下3-5,點擊OK退出界面。

從工具欄中拖放一個Bulk Insert Task,雙擊打開編輯界面,在Connection標簽選擇下拉列表中的<New connection……>新建一個OLE DB連接,在這個界面中新建一個連接,連接到本地服務器中AdventureWorks數據庫中,界面如圖3-3,在你自己的機器上信息可能有所不同,新建連接的界面如下。

在Connection下拉列表框內現在可以看到剛才創建的鏈接,在目標表中選擇表[AdventureWorks].[dbo].[InsertContent]。其他設置保持默認。行間隔符是{CR}{LF}(表示回車換行),列間隔符是制表符。在File框內再次選擇<New connection…>創建一個連接,打開連接管理界面。在Usage Type下拉列表框中選擇Existing File,這里選擇C:\SSISDemos\ZipCode.txt。最終的界面如下圖3-4

下一步在Options標簽界面內設置FirstRow為2。如果打開ZipCode.txt文件,可以發現在數據行之間有一個表頭。設置FirstRow為2執行task的時候將忽略第一行的表頭,從第二行開始插入。點擊OK退戶界面。
點擊任務第一個Purge InsertContent Table底部的綠色箭頭不放,拖動鼠標指向第二個任務Load Zip Codes,會有一條綠色帶箭頭連線。這個連線創建兩個task之間的先后順序,第一個task執行成功之后第二個任務才能執行。至此這個package已經完成了,點擊保存并執行它。執行的時候首先使用SQL語句將表清空,然后bulk insert重新插入數據,執行成功之后,圖標變成綠色的,如下圖3-6
點擊Stop按鈕可以中斷執行。Bulk Insert的弊端是不能進行錯誤處理,它是一種要么全部,要么沒有的任務。如果一行插入失敗整個任務都將失敗(通過設置最大錯誤數可以改變這種情況)。
作者:Tyler Ning
出處:http://www.rzrgm.cn/tylerdonet/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,如有問題,請微信聯系冬天里的一把火
浙公網安備 33010602011771號