本文配套源碼
上一次我們已經介紹了簡單的數據導出和導入,但是只是對單一文件進行操作,如果我們想同時對一個目錄下面的所有的文件執行數據導入怎麼實現呢?相當簡單,SSIS在控制流中提供了Foreach循環容器,很容易理解,它和序列容器相比就是能夠循環的遍歷執行,能夠對指定枚舉器的每個成員重復執行控制流:
可以看到,Foreach循環窗器遍歷文件夾可以通過一些設置或者是正則來匹配,使用 Foreach 循環 容器,可以枚舉:
•ADO 記錄集行和架構信息
•文件和目錄 結構
•系統、包和用戶變量
•SQL 管理對象 (SMO)
首 先我們准備一下數據,把上次生成的Excel文件重命名為Product1.xls,新建一個Product2.xls,復制 Product1.xls中的ProductID<800的行到新建的Product2.xls中(注意兩個Excel的Sheet名字一致),然 後在我們的SSIS項目中新建一個ForeachInput包,Foreach 循環容器容器進來,雙擊進行集合設置,在文件 夾處指定我們Excel文件所在的文件路徑,比如F:\ ,文件名處寫*.xls,這樣就能夠匹配出所有的後綴名為 xls的文件,然後單獨執行容器裡面的流程,不過在我們的容器中需要去訪問每一個Excel文件,我們必須獲 得每一個枚舉變量也就是文件的名稱,可以通過設置變量映射實現.