我们在做SqlServer SSIS包开发的时候,经常会用到SSIS的变量,我们可以使用和修改SSIS变量的值使得SSIS包的逻辑更灵活,如下图所示:

在定义SSIS变量的时候可以使用固定值(如上图中的变量Number),也可以是使用表达式(如上图中的变量Sql),使用表达式的时候可以让变量去使用另一个变量的值,比如下图是变量Sql的表达式,其中就使用了变量Number的值:

顺便说一下,本文上面的截图都是基于SqlServer2012的SSIS包,也就是VisualStudio 2010的SSIS包,其实VisualStudio 2008的SSIS包的变量也可以使用表达式,不过VisualStudio 2008需要打开VisualStudio的属性窗口后才能定义SSIS变量的表达式,如下图所示先在SSIS变量窗口选中要使用表达式的变量(变量MID_MonthsOver_SQL)

然后从视图(View)下拉菜单中选中属性窗口(Properties Window)

然后在属性窗口中就可以像在VisualStudio 2010中一样编辑变量的表达式(Expression)了

不管是在VisualStudio 2010还是VisualStudio 2008的SSIS变量上,都有一个设置叫EvaluateAsExpression,这个设置可以在变量的属性窗口(Properties Window)中看到(怎么打开变量的属性窗口上面已经说了),如下图所示:

默认情况下SSIS变量的EvaluateAsExpression是为False的,但是一旦你为SSIS变量使用了表达式(Expression),这个设置就会被自动改变为True,当然你也可以手动改回False,那么EvaluateAsExpression为True和False的时候有什么不同呢?

实际上EvaluateAsExpression这个设置只有在SSIS变量使用表达式(Expression)的时候才会起作用,它可以控制在获取变量值的时候是否动态计算变量的表达式。

举例说明,下图中我们设置了一个String类型的SSIS变量Sql,它的值依赖于Int32类型的变量Number,Number的初始值为0

然后我们在SSIS包的控制流中定义了三个Sequence Container(Sequence Container,Sequence Container 1,Sequence Container 2),每一个Sequence Container都会使得变量Number的值先加1,然后输出变量Sql的值

如果变量Sql的EvaluateAsExpression为True,三个Sequence Container的输出结果为下面所示:

但是如果变量Sql的EvaluateAsExpression为False,这时三个Sequence Container的输出结果变为了下面:

这说明当变量Sql的EvaluateAsExpression为True时,每当在SSIS包中获取变量Sql的值时都会动态地去计算它的表达式(Expression),用表达式的最新结果作为变量Sql的值。而当变量Sql的EvaluateAsExpression为False时,其表达式只会为变量Sql提供一个初始值,每当在SSIS包中获取变量Sql的值时都返回的是这个初始值,而不会去重新计算变量Sql的表达式。所以这就是SSIS变量EvaluateAsExpression这个设置的作用。

SSIS变量属性中EvaluateAsExpression设置的作用的更多相关文章

  1. java的环境变量classpath中加点号 ‘.’ 的作用

    java的环境变量classpath中加点号 ‘.’ 的作用 “.”表示当前目录,就是编译或者执行程序时,你的.class文件所在的目录: 当找.class文件时,先去“.”路径下找,找不到的话,在去 ...

  2. postman简单教程-环境变量,全局变量的设置及作用

    讲postman环境变量设置之前,先讲一个小插曲,环境变量.全局变量的区别在于Globals,只能用一组,而Environmen可以设置多组,所以我更喜欢设置环境变量 1.环境变量-Environme ...

  3. 2.栅格的类中同时设置col-md-* col-sm-*的作用

    1.一般设定成这样的话,在小屏幕上会堆叠在一起 <div class="row"> <div class="col-md-4 ">COL ...

  4. java的classpath路径中加点号 ‘.’ 的作用

    "."表示当前目录,就是编译或者执行程序时你所在的目录下的.class文件:而JAvA_HOME表示JDK安装路径 该路径在eclipse中是以vmarg的形式传入的,可以在任务管 ...

  5. iOS中的成员变量,实例变量,属性变量

    在ios第一版中: 我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如: 注意:(这个是以前的用法) @interface MyV ...

  6. 【转载】Asp.Net中Cookie对象的作用以及常见属性

    Cookie对象是服务器为用户访问存储的特定信息,这些信息一般存储在浏览器中,服务器可以从提交的数据中获取到相应的Cookie信息,Cookie的最大用途在于服务器对用户身份的确认,即票据认证,用户会 ...

  7. Linux串口c_cc[VTIME]和c_cc[VMIN]属性设置的作用

    Linux串口c_cc[VTIME]和c_cc[VMIN]属性设置的作用 在串口编程模式下,open未设置O_NONBLOCK或O_NDELAY的情况下. c_cc[VTIME]和c_cc[VMIN] ...

  8. bash中通过设置PS1变量改变提示符颜色

    参考 <Prompt Magic> ubuntu初始时bash提示符的颜色同程序输出的颜色相同,当大量有输出时,找到输出信息开始的地方往往很费劲.如果把提示符的颜色变成更为醒目的颜色,那么 ...

  9. MVC5中Model设置属性注解

    ASP.NET MVC5中Model层开发,使用的数据注解有三个作用: 数据映射(把Model层的类用EntityFramework映射成对应的表) 数据验证(在服务器端和客户端验证数据的有效性) 数 ...

随机推荐

  1. bzoj1720: [Usaco2006 Jan]Corral the Cows 奶牛围栏

    金组题什么的都要绕个弯才能AC..不想银组套模板= = 题目大意:给n个点,求最小边长使得此正方形内的点数不少于c个 首先一看题就知道要二分边长len 本来打算用二维前缀和来判断,显然时间会爆,而且坐 ...

  2. 使用MS Test进行单元测试

    MS Test也可以方便的进行单元测试,可以通过Visual Studio很方便的建立单元测试. 添加对待测试工程的引用,即可方便的开始单元测试. 最基本的一些测试使用如下: using System ...

  3. html中meta的设置

    meta设置 <meta name="viewport" content="width=device-width, initial-scale=1.0, user- ...

  4. [转自天涯]ISO27001与ISO20000的关系心得

    “获得认证,就能得到政府的补助,能将对手甩掉.”这是很多管理者的一种想法.但是关于ISO27001与 ISO20000的关系问题很多人都不是很清楚.湖南冉达专家表示想解决这个主要要从三个方面进行分析: ...

  5. Oracle12c IMO 测试

    1.概述 2014 年 6 月,在 Oracle 12c 的 12.1.0.2 版本中,Oracle 正式发布和引入了基于内存和列式计算的 In-Memory Option 组件 (以下简称 IMO) ...

  6. WIN7 如何将BAT文件附加到任务栏

    1.桌面有个 a.bat 文件2.将a.bat 改名为 a.exe3.将 a.exe 拉到任务栏4.修改桌面的 a.exe 回 a.bat5.打开C:\Users\Administrator\AppD ...

  7. 阿里云服务器Linux CentOS安装配置(零)目录

    阿里云服务器Linux CentOS安装配置(零)目录 阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器 阿里云服务器Linux CentOS安装配置(二)yum安装svn 阿里云服 ...

  8. 一段可以清理NSArray中的空对象的代码(递归)

    - (NSArray *)clearAllNullObject{ NSMutableArray *array = [self mutableCopy]; ;i < array.count;i++ ...

  9. java中Collections.sort排序详解

    Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能:如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b,c,d,e,f, ...

  10. JQuery中的选择器的总结

    JQuery的选择器十分的强大,但是我平常经常用到的却十分的有限,趁现在有时间我感觉有必要总结一下. 基本选择器 $("#ID") 选择ID所对应的标签元素 返回一个标签元素$(& ...