我的思路是:这个问题大概是卡在使用ADO.NET架构行集进行枚举,所以所有的文件都必须同源具有相同的架构,如果能动态地指定Foreach循环的源就好了。
能不能采用包配置输出这个连接字符串,然后在下一次循环之前修改包配置文件,将下一个Excel文件的名字替换上一次循环的Excel文件名称?好像SSIS组件中的文件系统不能修改文件中的内容,有没有其他办法呢?或者在定义ado连接的时候采用变量的方式,貌似也难办到阿。
能不能采用包配置输出这个连接字符串,然后在下一次循环之前修改包配置文件,将下一个Excel文件的名字替换上一次循环的Excel文件名称?好像SSIS组件中的文件系统不能修改文件中的内容,有没有其他办法呢?或者在定义ado连接的时候采用变量的方式,貌似也难办到阿。
foreach循环的文件循环可以获取目录及子目录中的文件路径、名称,并且可以传递进变量。
现在要做的是目录中会不断的增加Excel文件,我需要自动的成批导入数据库。而且sql server 2005同一个excel文件中的多个工作表好像不能通过导入导出工具同时导入数据库的同一张表。
sqlserver 遍历一个文件无规律且个数不定的工作表貌似困难些。
批量导入excel文件
http://blog.csdn.net/jinjazz/archive/2008/07/25/2710169.aspx
循环工作表
http://blog.csdn.net/jinjazz/archive/2008/07/28/2722987.aspx然后理解一下其中变量的用法,批量导入的时候用到一个用户::xlsFile变量,循环工作表使用了一个用户::table变量,在第二篇文章中有一个细节是编辑excel数据源链接的Expressions,第16到18步。这个用法是把excel的链接改为变量定义。同理在枚举excel文件之后,嵌套一个枚举excel架构的容器,然后把枚举链接的Expressions里面的servername属性改为用户::xlsFile就可以了。没有这个步骤你会永远钉着一个excel来枚举所以会出错
就你发的这图来说,已经不单纯是dts能做的了吧 .
dts能做的也只是其中有限的一步分,抽取和转换吧。这图已超出导入导出的范筹。
關於SSIS,兩年前看過
清華大學有本書專講SSIS的書講得很詳細;書名不記得了;定價好像68元的
http://download.csdn.net/source/810313
PS:
我的目标是 ----> ^_^
=================================
北京思源计算机培训中心(http://www.ciitc.com)