`
feiliboos
  • 浏览: 679540 次
文章分类
社区版块
存档分类
最新评论

Integration Services 学习 (2)

 
阅读更多

变量和表达式

变量,作为程序员的我们,是一个多么熟悉的概念,从开始学习编程的第一天起,就要了解什么是变量?如何定义一个变量?变量的使用范围等。现在还有必要在这里大费口舌来讨论“变量”吗?不错,我们今天谈的变量,也脱离不了这个范畴:如何定义一个变量?如何使用变量?变量的使用范围等。但是在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 事件。如图:


二、表达式。

  前面讲述了表变量的定义、变量的命名空间、变量的作用范围等,但是却没有提及如何使用变量。这就是我们这一节要介绍的内容--表达式。

  “在SSIS解决方案中,对于表达式的强大功能怎么表述都不过分。在SSIS中,我最喜欢的功能就是表达式”--Jamie Thomson

  正如Jamie 所言,表达式的功能在SSIS简直是太强大了,组件的属性、变量、优先级约束、For/Foreach循环容器等,都可以用表达式进行设置。从而使用包变得更加强大、灵活。下面我们将讲一讲常见的几种表达式的应用。

  (一)、属性表达式。

  在Integration Services 中,大多数组件都有Expressions 这个属性,如图:


  Expressions 就是为组件定义表达式的属性,点击“...”按钮,打开“属性表达式编辑器”对话框,如图:


我们可以简单地比较一下,一个文本文件连接对象,基本上大多数属性都可以通过表达式来定义,这就是它的强大的之处。表达式的定义,也非常方便,有一个功能全面的“表达式生成器”窗口,如图:


  这个窗口有四个区域,左上角为“变量”区域,包含了全局变量和该对象可见的局部变量。右上角为“函数”和“运算符”区域,中间为表达式编辑区域,下面为表达式结果显示区,每当一个表达式定义完成,我们为了验证表达式定义是否正确,点击“计算表达式”按钮,就可以模拟计算出表达式的结果。请大家别小看了这个按钮,在Debug 表达式时,非常有用哦。

  (二)、变量表达式。

  变量表达式的定义同属性表达式的定义完全相同,选择变量的“Expressions ”属性,打开属性编辑器,进行编辑即可。

  (三)、优先约束表达式。

  一般在控制流中有多个任务组件,比如有Script 任务,有数据流任务,有SQL脚本任务等,我们有时并不需要这些任务全部都要执行,而是需要根据前面一个任务的执行结果,动态地决定后面的任务是否执行,这就需要用到优先约束表达式。如图:


  优先约束控制着包的工作流,它会判断包的约束是否满足,然后再按照约束条件来选择包是继续运行,还是停止运行。在以前的DTS中,优先约束仅限于前面的任务是“成功”、“失败”、“完成”这三种状态,而现在除了以上三种状态外,还多了一个“表达式和约束”,即我们可以通过定义表达式来定义约束,比如上图所示,如果我们需要定义当错误数量超过5次以后,包才失败,停止运行。这就要用到表达式约束了。

  (四)、循环容。

  “For 循环”是一个容器组件,它可以让某些组件在此容器中,重复运行指定的次数。在这个容器中,我们要定义初值、定义表达式、定义赋值语句,如图:


  

  常用的表达式应用,就是以上这些了,当然还有其它一些类型的表达式定义,我们就不一一列举了,使用方法都大同小异,只要撑握了前面几种,这些定义也就一目了然了。

  今天我们讲述了两个内容:变量和表达式,这两方面的内容,在SSIS包中扮演了非常重要的角色,只要我们充分、灵活地运用,它可以让包更有弹性,更灵活,更加有生命力。如果大家在以后的工作中遇到了,仔细琢磨琢磨,一定不会让你失望的。

分享到:
评论

相关推荐

    Knight’s 24-Hour Trainer Microsoft SQL Server 2008 Integration Services

    接下来,读者将学习如何安装SQL Server Integration Services(Lesson 2),以及安装示例数据库的方法(Lesson 3)。创建解决方案和项目(Lesson 4)是SSIS开发的基础,这部分内容会详细介绍如何在Visual Studio环境...

    Integration Services in SQL Server 2005

    **SQL Server 2005 Integration Services (SSIS)** SQL Server 2005 Integration Services, 或简称 SSIS,是微软提供的一款强大的数据集成工具,用于处理数据抽取、转换和加载(ETL)任务。它在数据仓库环境中扮演...

    SQL SERVER 2005 INTEGRATION SERVICES专家教程

    《SQL SERVER 2005 INTEGRATION SERVICES专家教程》是一本深入探讨微软商务智能(Microsoft BI)领域中SQL Server 2005 Integration Services(SSIS)的专著。SSIS是微软提供的一个强大的数据集成和转换工具,用于...

    Wrox.Professional Microsoft SQL Server 2008 Integration Services.rar

    《Wrox Professional Microsoft SQL Server 2008 Integration Services》是专为SQL Server 2008的Integration Services(简称SSIS)设计的一本专业指南。这本书深入探讨了这一强大的数据集成和转换工具,帮助读者...

    Microsoft.SQL.Server.2005.Integration.Services.Step.by.Step

    总的来说,通过学习《Microsoft SQL Server 2005 Integration Services Step by Step》,无论是初学者还是有经验的数据库管理员,都能深入理解并熟练运用SSIS,提升在数据集成和ETL项目中的专业技能。

    Microsoft SQL Server 2012 Integration Services An Expert Cookbook

    总的来说,《Microsoft SQL Server 2012 Integration Services: An Expert Cookbook》是SSIS学习者和专业人员的重要参考资料,它不仅提供理论知识,还通过大量实际案例和技巧,帮助读者快速提升在数据集成项目中的...

    wrox professional sql server 2005 integration services

    本书为读者提供了深入浅出的学习指南,旨在帮助读者掌握SQL Server 2005 Integration Services (SSIS) 的强大功能。对于那些希望摆脱复杂脚本逻辑编程任务的开发者来说,这本书将教授他们如何利用一个全功能语言来...

    Microsoft SQL Server 2008 Integration Services

    ### Microsoft SQL Server 2008 Integration Services (SSIS):深入解析 #### 一、概述 Microsoft SQL Server 2008 Integration Services(简称 SSIS)是 SQL Server 2008 数据平台的重要组成部分之一,它提供了一...

    Integration Services Samples

    "Integration Services Samples" 提供的实际示例可以作为学习SSIS的宝贵资源,你可以通过查看源代码、配置和执行这些示例,理解SSIS的工作原理,学习如何解决实际问题。 通过深入研究这些示例,你将能够掌握如何...

    Hands-On Microsoft SQL Server 2008 Integration Services

    《Hands-On Microsoft SQL Server 2008 Integration Services》是一本专为想要深入了解SQL Server Integration Services(SSIS)的读者量身打造的实践指南。这本书深入浅出地讲解了如何利用SSIS进行数据集成、转换和...

    Professional Microsoft SQL Server 2014 Integration Services, Brian Knight

    总之,《Professional Microsoft SQL Server 2014 Integration Services》是一本全面而深入的SSIS教程,适合SQL Server管理员、数据仓库开发者、ETL工程师等专业人士学习参考,以提升他们在数据集成领域的专业技能。...

    Pro SQL Server 2012 Integration Services

    《Pro SQL Server 2012 Integration Services》是一本关于SQL Server ...通过《Pro SQL Server 2012 Integration Services》这本书的学习,开发者可以有效地利用SSIS解决数据集成问题,构建高效、稳定的数据处理系统。

    专业版SQL Sever 2005 Integration Services

    《专业版SQL Sever 2005 Integration Services》是由知名技术出版社Wrox在2006年推出的一部深入解析SQL Server 2005 Integration Services(SSIS)的权威教程。SSIS是Microsoft SQL Server数据库平台中的一个关键...

    Beginners Guide to SQL Server Integration Services Using Visual Studio 2005

    ### SQL Server Integration Services (SSIS) 初学者指南:使用 Visual Studio 2005 #### 一、SQL Server Integration Services (SSIS) 概述 SQL Server Integration Services(简称 SSIS)是 Microsoft 提供的一个...

    SQL Server Integration Service(SSIS)入门操作手册

    SQL Server Integration Service (SSIS) 是一种用于数据集成、转换和加载的企业级工具,它在SQL Server 2005及后续版本中扮演着重要角色。SSIS 是Microsoft为构建Business Intelligence (BI) 应用提供的一部分,与...

    Wrox.Professional.Microsoft.SQL.Server.2012.Integration.Services Copy.pdf

    根据提供的文件信息,本书《Professional Microsoft® SQL Server® 2012 Integration Services》主要介绍了Microsoft SQL Server 2012 Integration Services (SSIS) 的各个方面。以下是对本书各章节内容进行的详细...

    Microsoft® SQL Server™ 2008 Integration Services unleashed

    ### Microsoft® SQL Server™ 2008 Integration Services Unleashed #### 一、概览与启动 **标题与描述解读:** 本书《Microsoft® SQL Server™ 2008 Integration Services Unleashed》深入探讨了SQL Server ...

Global site tag (gtag.js) - Google Analytics