上期回顾:

 

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

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


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

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

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

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

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


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

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

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


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

 

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

求值运算

“表达式或约束”

“完成”

注意:

“完成”

 

表达式

表达式的计算结果必须为布尔值。

测试

验证表达式。

逻辑与

True

注意

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

 

逻辑或

True

注意

 

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

 

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

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

 

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


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

 

2)新建一个SQL 链接器

 

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


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

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


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

 

3)先建一个SQL任务

 

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


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

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

 

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


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

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

ConnectionType:选中ADO.NET

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

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

结果集:单行

 

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

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


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

 

4)继续新建一个sql任务

 

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

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


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

 

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

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


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

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

 

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

 

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


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

 

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

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


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

 

 

相关文章:

  • 2022-01-17
  • 2022-01-03
  • 2021-08-15
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案