Integration Services:变量和表达式

变量,作为程序员的我们,是一个多么熟悉的概念,从开始学习编程的第一天起,就要了解什么是变量?如何定义一个变量?变量的使用范围等。现在还有必要在这里大费口舌来讨论“变量”吗?不错,我们今天谈的变量,也脱离不了这个范畴:如何定义一个变量?如何使用变量?变量的使用范围等。但是在ETL的发展过程中,从以前Sql Server 97、Sql Server 2000的DTS到后来的Sql server Integration Services 2005 ,再到现在的Sql Server Integration Services 2008,变量也发生了巨大的变化,其作用也变得越来越重要了。SSIS包中各组件原本是想互独立,彼此分割的,就需要通过变量来进行信息传递与交流。就象生活在这座城市中的我们,回家同居一小区,出门同乘一班车,但是老死不相往来,每日相逢不相识,彼此从不沟通,从不交流。现在突然来了一位美丽的使者(Variable),挨门挨户地传递信息,把大家凝聚在一起,彼此的沟通和交流多起来了,从此这个小区就变得热闹起来,相互间和谐多了。

Integration Services 中的变量,同其它编程语言中的变量非常相似----它们都是用于临时存储数据。但是也有一些区别:Integration Services 变量,它还是一个对象,有自已的属性(property),有自已的响应事件。下面我们就看看如何定义变量。

打开Integration Services Solution ,打开菜单SSIS(S)---变量(S),就会弹出如图所示的窗口。

从这个窗口中,我们可以明白变量以下几方面的情况:

(1)、变量的分类,在Integration Services 中,变量有两种类型:系统变量和用户自定义变量。其中系统变量,比如:TaskID,TaskName,CreateName,CreateDate等,提供包运行时的一些基本属性,可供包中的组件或者代码使用。这些变量一般是只读的,在运行的过程中,根据包的运行环境默认生成,不可以修改。而自定义变量呢?两种情况都可以定义了:只读、读写。

(2)、变量的作用域。有基于包的全局变量,也有基于某一组件的局部变量。这与以前的DTS有较大的差异,以前DTS包中的变量,都是基于包的全局变量。

(3)、变量的名称、变量的数据类型、默认值等与其它编程语言没有什么差异,在此就不多说了。

(4)、Raise Change Event 。这是Integration Services 的一个新属性。它是一个Bool 值,如果其值为True,每当变量的值发生改变,VariableValueChangedEvent 将会响应,否则,这个事件将不会响应。(SSIS中的事件,以后会讲到,这里暂不深入).

除了上面提到的这些属性外,变量还有一个重要的属性--变量的可继承性。前面提到变量有全局变量与局部变量,而局部变量是针对某一个组件可见的变量,但是Integration Services 中的组件是分层的,即有祖先级组件,也有子孙级组件,那么子孙组件就会继承祖先组件的变量,可以引用,可以修改,也可以触发变量 VariableValueChangedEvent 事件。如图:

时间: 2024-10-03 07:16:39

Integration Services:变量和表达式的相关文章

Integration Services:容器

容器是Integration Services 包中非常重要的一部分功能,它可以对控制流中的任务进行直观的划分与组织,使包的结构简明扼要.易于管理.易于维护. 在Integration Services 中,主要有以下三种类型的容器: 序列容器(SequenceContainers).For 循环.Foreach 循环.下面我们将一一介绍这三种容器的使用方法. (一).序列容器(SequenceContainers). 序列容器是一种十分简单,但使用非常广泛的容器,它可以对控制流的任务流组件进行

Integration Services:数据流任务(下)

前一篇文章Integration Services:数据流任务(上),介绍了如何创建一个简单的ETL包,如何通过一个简单的数据流任务,将一个文本文件的数据导入到数据库中去.这些数据都保持了它原有的本色,一个字符不多,一个字符地少导入,但是在实际应用过程中,可能很少有这种情况,就拿IisLog文件来说吧,其中包含有:请求成功的记录(sc- Status=200),也有请求失败的记录:有网页(比如:*.aspx.*.htm.*.asp.*.php等).有图片.有样式表文件(*.CSS).有脚本文件(

Integration Services:高性能策略

本文描述了如何成功的运用性能提高策略来对Microsoft SQL Server 2005 Integration Services的数据整合方案进行优化. Elizabeth Vitt在商业智能领域拥有超过十年的商业系统开发,项目管理,咨询和培训经验.她在数据仓库,ETL和OLAP设计和实施方面还有着丰富的教学经验. 目录 简介 性能建模 操作 定义操作 优化操作 容量 定义容量 优化容量 应用 理解应用的使用 评估选择 区域 定义区域选择 评估区域影响 总结 关于作者 Elizabeth V

《C语言程序设计与实践(第2版)》——第2章 示例驱动的C语言语法元素 2.1变量与表达式

第2章 示例驱动的C语言语法元素 本章主要介绍C语言的基本语法元素,包括变量与表达式.控制流.数组.函数.基本输入/输出等.通过学习本章的内容,读者可以对C语言有一个整体的认识,并能编写简单的小程序. 2.1 变量与表达式 例2-1中程序的功能是打印出余弦函数??对应的离散值表,其中x在一个函数周期(0?-360?)内变化,打印结果如图2-1所示.我们可以据此拟合出余弦函数曲线. 例2-1 打印余弦函数的离散值表. #include <stdio.h> #include <math.h&

《MATLAB图像处理超级学习手册》一一2.6 MATLAB变量及表达式

2.6 MATLAB变量及表达式 MATLAB图像处理超级学习手册 在MATLAB中,可以直接对某变量进行赋值并运算,而不需要事先对变量的类型及其大小进行定义. 2.6.1 数值的表示 MATLAB 中数值的表示采用习惯的十进制,可以带小数点或负号.例如,以下输入都是合法的: 200 -11.1 0.001 科学计数法采用字符e来表示10的幂.例如: 9.45e2 1.26e3 -2.1e-5 虚数的扩展名为i或者j.例如: 2i 3ej -3.14j 在采用IEEE浮点算法的计算机上,实数的数

《像计算机科学家一样思考Python(第2版)》——第2章 变量、表达式和语句 2.1 赋值语句

第2章 变量.表达式和语句 编程语言最强大的特性之一是操纵变量的能力.变量是指向一个值的名称. 2.1 赋值语句 赋值语句可以建立新的变量,并给它们赋值: >>> message = 'And now for somthing completely different' >>> n = 17 >>> pi = 3.1415926535897932 这个例子有3个赋值.第一个将一个字符串赋给叫作message的变量:第二个将17赋值给n:第三个将π的(近

python学习笔记:语言、调试、语法、变量、表达式

python是编程语言的一种,有着传统编程语言的强大性和通用性,同时也借鉴了简单脚本和解释语言的易用性.总结一句话来概括就是:很好很强大! 1.编程语言就是编写程序的语言,而程序是根据语言提供的指令,按照一定的逻辑顺序,对获得的数据进行运算,并将结果最终返回给我们的指令和数据的组合.语言分为两种: 低级语言:用英文单词或单词的缩写代表计算机执行的指令,使编程的效率和程序的可读性都有了较大的提高.    高级语言:是人类逻辑思维的程序化.数字化和精确化数学描述,翻译成机器代码有两种方法,解释和编译

Integration Services:数据流任务(上)

数据流任务是SSIS中的一个核心任务,估计大多数ETL包中,都离不开数据流任务.所以我们也从数据流任务学起. 数据流任务包括三种不同类型的数据流组件:源.转换.目标.其中: 源:它是指一组数据存储体,包括关系数据库的表.视图:文件(平面文件.Excel 文件.Xml 文件等):系统内存中的数据集等. 转换:这是数据流任务的核心组件,如果说数据流任务是ETL的核心,那么数据流任务中的转换,则是ETL核心中的核心了.它包含非常丰富的数据转换组件,比如数据更新.聚合.合并.分发.排序.查找等.可以说S

《Python参考手册(第4版•修订版)》——1.2 变量和算术表达式

1.2 变量和算术表达式 程序清单1-1中的程序通过执行一次简单的复利计算,说明变量和表达式的用法. 程序清单1-1 简单的复利计算 principal = 1000 # 初始金额 rate = 0.05 # 利率 numyears = 5 # 年数 year = 1 while year <= numyears: principal = principal * (1 + rate) print year, principal # 注意:在Python 3中应写成print(year, prin