http://www.cnblogs.com/zsjtianya/archive/2012/06/24/2559736.html
对cnblogs的这篇文章,进行一点补充,第三步写的不够明白.
1介绍组件
1).Foreach Loop Container
2).Execute SQL Task
2.功能介绍
1).Foreach Loop Container 是一个循环遍历的容器,类似于C#中的foreach
2).Execute SQL Task 就是一条Sql命令。
3.使用操作
Foreach Loop Container。首先场景是这样的,我有一大堆sql脚本在一个文件夹里面,
我想将这些脚本执行到数据库上。这个场景是我们做系统开发的时候遇到一些常见的问题。解决
方法有多种,我这里主要来讲用SSIS怎么实现。
首先建立一个工程,将Foreach Loop Container组建拽上。我的本地有一个Sql文件夹,里面有三个
脚本,分别是创建上个表的脚本。我sqlserver2008本地有一个数据库SSISTestingBase,里面没有
用户创建的表。
Step1.选择Foreach Loop Container
Step2.编辑->集合->文件夹
我们将选择有sql脚本的文件夹,后面的files,我们填写*.sql
这个意思只要是学计算机的都非常明白是什么意思。
后面的选项是返回一个文件的全部路径还是名称等,同时还可以遍历子文件夹。
Step3.我们要添加一个Execute SQL Task 到foreach容器里面,同时要设置一个变量,来
保存每次容器读取的Sql脚本路径,
这个变量可设置位置是: Foreach Loop Container,右键单击-->Edit-->Variable Mappings, 在这里定义一个变量Sql, 它的index只能是0(,因为它要取返回来的结果集的第一列,
对以文件来说,它只有第一列)
然后将sql脚本路径给Execute SQL Task 执行。
添加完变量之后,我们在容器中要做一个变量的mapping。
Step4.Execute SQL Task 执行的属性设置
首先要设置连接 (,就是执行到那个数据库。
其次要执行的类型,是变量执行还是直接脚本。
但是我们foreach读出来的是一个文件路径,那怎么得到
路径的文件呢?
我们选择类型的时候,肯定要选择File connection,这样就会弹出一个
框,要你选择是创建还是已经存在的文件,我们这里当然要选择创建。
然后选择连接管理器,设置文件的连接变量,也就是foreach读出的文件路径。
选择SqlFile,右键属性,选择Expressions,选择ConnectionString
选择按钮来选择变量
将Sql变量拽到Expression,点击Ok完成。
到目前,我们的工程就完成,测试能否执行。