七.SSIS的控制流之序列容器

序列容器是一种十分简单,但使用非常广泛的容器,它可以对控制流的任务流组件进行结构化处理,把一些业务相关的任务组件,放到一个序列容器中,使整个包看起来更加整洁、美观,就如同我们家里的书柜、衣柜似的,把不同种类的东西整理在里面,收藏起来,既美观,又易于取用。它是将一个或多个控件作为一个工作单元来处理。例如:

image
在图中序列容器包含两个执行Sql语句的控件。是将这两个控件组合成一个控件。只有两个控件都执行成功后,才能继续执行下面的流程。序列容器的作用就是这些。不需要配置,也不要编写代码。只要将控件拖放到序列容器即可。有点类似我们C# 中用户控件一样。

我这里有一个名为SQLTxt的文件夹

image

里面有连个脚本文件,分别创建两张数据表

首先,我们拖入一个序列容器,里面分别拖入两个 image,分别命名为Drop Database和Create Database,将Drop Database的Success约束连接到Create Database,双击 Drop DataBase,如下图

image

新建一个数据连接

image

确定后,在编辑T-SQL语句内容

IF EXISTS(SELECT 1 FROM master.sys.databases WHERE name='SSISDB')
DROP DATABASE SSISDB

这条语句的作用是检测名为“SSISDB”的数据库是否存在,如果村子啊就删除改数据库

双击 Create DataBase

image

操作同Drop Database相同,不过TSQL语句变为建立名为 "SSISDB"的数据库,确定保存,

接下来我要用SQLTxt文件夹中的SQL脚本文件创建表,同上一章Foreach容器一样,先建立一个名为FileName的String类型变量,然后拖入一个Foreach容器,在Foreach容器内放置一个

image

双击Foreach容器,设置如下,如有不懂请参考上一章《六.SSIS的控制流之Foreach循环容器[转载]

image

image

接下来我们 连接管理器 右键 创建 文件连接

image

文件路径可以随便选择一个文件,确定后 修改连接名称蚊 SqlStr

image

右键 SqlStr ->属性

image

将ConnectionString 的内容清空,然后点击Expressions后面的...

image

属性栏选择 ConnectionString

image

然后单击表达式后的...,在变量中选中我们创建的FileName变量,将其拖入到下方的表达式中后会自动生生表达式,确定保存

image

接下来,在Foreach容器中拖入一个 “执行 SQL 任务”控制流项将其命名为“创建数据表”,双击进入属性编辑

SQLSourceType 为文件链接,FileConnection为我们刚刚创建的文件链接,

image

确定保存。下面我们执行包,所有流程通过,效果如下

image

posted @ 2012-07-11 15:34  懒豆  阅读(513)  评论(1编辑  收藏  举报