控制流介绍
控制流任务
控制流是基于包存在的,分为多个任务来执行。总的来说,控制流中包含了以下9大类任务
- 数据流
- 数据库任务
- 文件和网络任务
- 执行过程任务
- WMI任务
- 自定义逻辑任务
- 数据库转换任务
- 分析服务任务
- 数据库维护任务
在任务与任务之间有优先以及逻辑之分。控制流的执行结果分三种,成功,失败和完成。
逻辑关系分为两种,逻辑或,逻辑与。
甚至我们可以把多个任务用容器包裹起来作为一个单元组
建立动态的包
变量
- 用户变量
- 用户自定的变量
- 默认定义在User范围内
- 也可以定义在某个指定的范围
- 系统变量
- 系统内置的变量根据系统变化
- 定义在系统级别的变量
参数
- 项目级别的参数
- 可以在项目内任意使用
- 包内的参数
- 仅可供包内使用
表达式
- 用于设置动态的值
- 属性值
- 按条件筛选
- 新派生的列
- 优先级筛选
- 基于SSIS语法
- 可以包含参数和变量
- 可以通过UI的拖拽来完成
使用容器
容器介绍
容器就是用来包含控件,使其达到形成一个统一的单元的目的。容器有4个
- 任务容器
- 序列容器
- 定义一个控制流子集
- 可以控制多个任务的属性
- 创建一个范围
- For循环容器
- 建立可循环的控制流
- 类似C#的For循环语法
- Foreach循环容器
- 在枚举中逐个循环
- ADO -- 逐行扫描
- ADO.NET -- 逐对象
- File -- 文件夹中的每个文件
- 变量 -- 数组中的每个变量
- 单位 -- 属性值中的每个单位
- 节点列表 -- Xml文档中的每个节点
- SMO -- SQLServer管理工具中每个对象
一致性管理
配置错误行为
使用配置属性来控制错误行为管理
FailPackageOnFailure
FailParentOnFailure
MaximumErrorCount
使用事务(transaction)
在任务,容器和包中,有个属性叫做TransactionOption。有三个待选项
- 要求的 ---- 建立一个新的事务
- 支持的 ---- 不建立新事物,但是如果父组中有事务,则加入
- 不支持的 ---- 不加入事务