原文:SSIS从理论到实战,再到应用(3)----SSIS包的变量,约束,常用容器

上期回顾:

SSIS从理论到实战,再到应用(2)----SSIS包的控制流

 

首先我们来看看包里面的变量

SSIS包变量分为两种,一种是系统的内置变量,是一个SSIS包初使化都会自带的,一种是用户自己定义的变量。

在SSIS包中,常用的变量的类型包含以下:Int32,String,Boolean,DateTime,Object......

二,让我们来看看包里面的约束(线)

如图中所示的线就是约束,官方的解释是这样的:优先约束在控制流中链接包中的可执行文件、容器和任务,并指定决定可执行文件是否运行的条件。在图中的表达就是,当“得到变量值”这一步执行成功后,并且满足优先约束中的条件的时候,才会执行”插入表变量“这一步。

先上一份官方的关于约束的解释:

求值运算

指定优先约束使用的求值运算。 运算包括:“约束”、“表达式”、“表达式和约束”和“表达式或约束”。

指定约束值:“成功”、“失败”或“完成”。

注意:

优先约束线的含义:绿色表示“成功”,突出显示表示“失败”,蓝色表示“完成”。

 

表达式

如果使用运算“表达式”、“表达式和约束”或“表达式或约束”,则键入一个表达式或启动表达式生成器来创建表达式。 表达式的计算结果必须为布尔值。

测试

验证表达式。

逻辑与

选择此选项可以指定:同一个可执行文件的多个优先约束必须一起计算。 所有约束的计算结果都必须为 True。

注意

这种类型的优先约束显示为绿色、突出显示或蓝色实线。

 

逻辑或

选择此选项可以指定:同一个可执行文件的多个优先约束必须一起计算。 至少必须有一个约束的计算结果为 True。

注意

 

这种类型的优先约束显示为绿色、突出显示或蓝色点线。

结合以上的解释,我们来做这样一个package:现有[Report]表一张,当发现Report表数据量大于0时,将Report表的总行数插入到Report历史表T_ReportHist中。

1)新增加一个变量TotalRowCount存储Report表的总量

2)新建一个SQL 链接器

3)先建一个SQL任务

拖入到右边的图形界面区,双击打开这个控件的配置界面:

在常规栏下可以做如下的配置:

ConnectionType:选中ADO.NET

Connection:选中我们在连接管理器中先添加的DST_BITEST

SqlStatement:在这里我们要输入我们要使用的sql语句,我这里做的是:将Report表的数量存储到变量TotalRowCount中,所以SQL语句写入,select count(1) from Report

结果集:单行

在结果集栏目做如下的设置,这样才可以让变量TotalRowCount接收到sql语句的结果

4)继续新建一个sql任务

从左侧的控件栏目继续拉入一个sql任务

在这里的SQL statement 里面,我们要明确我要做的是将变量TotalRowCount 和包的PackageName ,在这里,如果你要将变量输入,统一都用 “?” 加以代替变量的位置(占位符),语句写好,接下来就是输入参数:

这里需要注意的是,你必须按照相应的变量位置,变量类型,顺序添加你所对应的变量.

5)编辑约束,当脚本执行成功并且TotalRowCount>0的时候,执行插入任务!

Ok,整体执行一下看是否成功,查看T_ReportList数据也存在

SSIS从理论到实战,再到应用(3)----SSIS包的变量,约束,常用容器的更多相关文章

  1. SSIS从理论到实战,再到应用(6)----SSIS的自带日志功能

    原文:SSIS从理论到实战,再到应用(6)----SSIS的自带日志功能 上期回顾: SSIS从理论到实战,再到应用(5)----流程控制之Foreach循环 博主最近新负责了一个ssis大项目的架构 ...

  2. SSIS从理论到实战,再到应用(2)----SSIS包的控制流

    原文:SSIS从理论到实战,再到应用(2)----SSIS包的控制流 前文回顾: SSIS从理论到实战,再到应用(1)----创建自己的第一个包 上次说到创建了自己的第一个包,完成了简单的数据从数据库 ...

  3. SSIS从理论到实战,再到应用(7)----常用的数据类型转换操作

    原文:SSIS从理论到实战,再到应用(7)----常用的数据类型转换操作 上期回顾: SSIS从理论到实战,再到应用(6)----SSIS的自带日志功能 在抽取各种应用的数据时候,经常会遇到数据需要转 ...

  4. SSIS从理论到实战,再到应用(4)----流程控制之For循环

    原文:SSIS从理论到实战,再到应用(4)----流程控制之For循环 上期回顾: SSIS从理论到实战,再到应用(3)----SSIS包的变量,约束,常用容器 在SSIS体系中,控制流可能经常会遇到 ...

  5. SSIS从理论到实战,再到应用

    原文:SSIS从理论到实战,再到应用 一,是什么(What?) 1.SSIS是Microsoft SQL Server Integration Services的简称,是生成高性能数据集成解决方案(包 ...

  6. SSIS从理论到实战,再到应用(5)----流程控制之Foreach循环

    原文:SSIS从理论到实战,再到应用(5)----流程控制之Foreach循环 上期回顾: SSIS从理论到实战,再到应用(4)----流程控制之For循环 上一期讲了For循环,Foreach循环相 ...

  7. SSIS从理论到实战,再到应用(1)----创建自己的第一个包

    原文:SSIS从理论到实战,再到应用(1)----创建自己的第一个包 其实,如果你使用sql2008的导出导入工具的时候,你就已经在使用包了. 目标:使用sql2008 导入导出工具,导入excel数 ...

  8. Docker最全教程——从理论到实战(八)

    在本系列教程中,笔者希望将必要的知识点围绕理论.流程(工作流程).方法.实践来进行讲解,而不是单纯的为讲解知识点而进行讲解.也就是说,笔者希望能够让大家将理论.知识.思想和指导应用到工作的实际场景和实 ...

  9. Docker最全教程——从理论到实战(七)

    在本系列教程中,笔者希望将必要的知识点围绕理论.流程(工作流程).方法.实践来进行讲解,而不是单纯的为讲解知识点而进行讲解.也就是说,笔者希望能够让大家将理论.知识.思想和指导应用到工作的实际场景和实 ...

随机推荐

  1. WPF/Silverlight中图形的平移,缩放,旋转,倾斜变换演示

    原文:WPF/Silverlight中图形的平移,缩放,旋转,倾斜变换演示 为方便描述, 这里仅以正方形来做演示, 其他图形从略. 运行时效果图:XAML代码:// Transform.XAML< ...

  2. Android新建项目后src下没有自动生成文件

    最近开始学Android了,按照教材新建了一个项目,发现src下没有自动生成文件,怎么回事呢? 出现这种可能的原因很可能是ADT与SDK版本不同,造成不兼容. 在ADT(或者eclipse)中的hel ...

  3. C++基于该模型模板包括节目外实例

    一个."经典模式"失败 我们学过C++的人都知道.在C++中组织代码的经典模型是:将函数或类的声明和定义部分分开在不同的文件之中   , 即一般将声明放在一个.h的头文件里而定义在 ...

  4. java代码 分解EXCEL(一)

    一,service层接口定义: ExcelParseService.java 一,service层接口实现: ExcelParseServiceImpl.java watermark/2/text/a ...

  5. Cygwin编译自己定义OpenCV库报错:opencv_contrib: LOCAL_SRC_FILES points to a missing file

    今天受命帮师弟调个OpenCV4Android 识别银行卡的程序,版本号为OpenCV4Android2.4.9,使用方式为前文介绍的第一种方式,即通过jni调用opencv.如杂家前文所述,配套的N ...

  6. VS怎样创建和使用lib文件

    假设你当前正在使用vs写了一个project,那么你想如今就生成一个Lib文件,那么能够直接在"项目属性"上进行改动i 项目属性->配置属性->常规->配置类型中 ...

  7. UBuntu经常使用的操作(网络资源)

    http://docs.google.com/Doc? id=dqsbw4c_46d89djccr 版权声明:本文博主原创文章.博客,未经同意不得转载.

  8. Jsoup一个简短的引论——采用Java抓取网页数据

    转载请注明出处:http://blog.csdn.net/allen315410/article/details/40115479 概述 jsoup 是一款Java 的HTML解析器,可直接解析某个U ...

  9. 中颖电子AD操作

    #define ADC_DIS 0 #define ADC_ENB 1 //ADC通道号定义 #define ADC_Chanel0 (unsigned char)(0x00<<1) #d ...

  10. ZOJ1463:Brackets Sequence(间隙DP)

    Let us define a regular brackets sequence in the following way: 1. Empty sequence is a regular seque ...