SQL SERVER 2005 SSIS变量的灵活运用(首发于it168)

随着SQL SERVER 2005不断的推广,越来越多的企业的决策支持项目采用了SQL SERVER 2005商务智能解决方案。本文就SSIS开发ETL过程中SSIS用户变量的使用向读者作简单介绍。

[@more@]

一、SSIS变量简介
   SSIS变量分为两种,一种是系统变量,一种用户定义的变量。系统变量包含有关包、容器、任务或事件处理程序的非常有用的信息。例如,在运行时,MachineName 系统变量包含运行包的计算机的名称,StartTime 变量包含包开始运行的时间。系统变量是只读的。在 SSIS 中,用户变量是用户在开发的过程中根据需要申明的变量,用户变量可以使用在脚本中;在由优先约束、For 循环容器、派生列转换和条件性拆分转换使用的表达式中;以及在更新属性值的属性表达式中。
在各种编程语言中申明的变量一般情况下都会有作用范围的,SSIS变量也不例外,SSIS变量也是有作用范围的。根据作用范围分类,变量分为包变量和组件变量。包变量在包任何一个组件中都可以调用,组件变量只能够在申明变量的组件中有效。在变量的窗口中可以看到变量的作用域。(如图1所示)BeginDate就是TestPackage包变量,而i是数据转换这个数据流组件的变量。

sql server 2005 ssis变量的灵活运用

(图1)


二、SSIS用户变量的申明、赋值、使用
1、申明变量
申明变量非常简单,如果你要申明包变量,只要单击控制流选项卡,然后在包开发区域空白处单击右键选择变量命令,出现如图1的画面,单击新建变量按钮就新建一个变量,输入名称,选择数据类型,赋初值就完成了。(如图2) 红色方框是新建变量按钮,蓝色方框是删除按钮。 如果要申明某数据流任务组件使用的变量,只要双击该数据流任务组件,在流控制选项卡空白的地方单击右键选择变量命令,在变量窗口中新建一个变量,这时变量的作用域就是你所选的流任务组件。

sql server 2005 ssis变量的灵活运用

(图2)

2、赋值
在实际开发中,除了在变量申明的时候给变量赋值外,笔者还摸索了两种方式给变量赋值,一种是通过执行 SQL 任务组件返回值的方式给变量赋值,一种是通过脚本组件来给变量赋值。
利用执行 SQL 任务组件方法是先设置好组件的数据库连接属性,然后输入从数据取数据的SQL语句,设置组件返回的结果集为单行。在结果集界面中单击“新建“,在结果集那一列输入你刚才SQL 语句中返回列的名称,在变量名称列选择你要赋值的变量。过程如图3、图4所示)
sql server 2005 ssis变量的灵活运用

(图3)

sql server 2005 ssis变量的灵活运用

(图4)


图3中红色方框中SQL语句非常简单,返回单行,结果是1,在图4中,将返回的result列的一行赋值给用户变量i。利用脚本组件赋值变量比较简单,只需要设置脚本组件的ReadOnlyvariable或者ReadWriteVariable,将变量的名称设置为他们的值(多个变量以逗号分隔),他们的区别是前者在脚本组件只能够读,后者可以读写。然后在脚本组件中通过Dts.Variables("i").Value = 1
代码就可以1赋给变量i。
3、变量的使用
变量在ssis中使用的地方很多,笔者介绍两个典型的应用。
(1)执行 SQL 任务组件的参数。
假定申明了一个日期类型变量StartDate,用户需要通过从某个表中选择在StartDate日期之前的数据,这个时候需要将StartDate作为参数传给执行 SQL 任务组件。在执行 SQL 任务组件输入SQL的地方输入 SELECT * FROM TABLE_a WHERE 日期字段 < ?,然后在参数据映射界面新增映射,在变量名称列选择用户变量StartDate,选择类型为DATE,在参数名称列输入给参数取的名称。这样就可以将StartDate变量传给SQL任务组件的SQL语句了。
(2)在脚本组件中
可以在脚本组件中通过Dts.Variables("i").Value = 1方式赋值给变量,也可以通过这种方式来使用变量。比如Dts.Variables("other_variable").Value = Dts.Variables("i").Value+1,这个语句是可以在脚本组件中执行的,将i变量加1后赋值给另外一个变量。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7757832/viewspace-918438/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7757832/viewspace-918438/

SSIS专题二 详解 SSIS 性能调整 个人认为此篇文档看看就好,为保持专题完整性而上传。 PS:感谢TechTarget提供此文档。此文档仅为传播知识用途,请勿用作商业用途。 立即下载

相关推荐

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

SQL Server Integration Service(SSIS)入门操作手册,简单介绍了各模块的功能。

SSIS - 3.变量

  跟其他变成语言一样,SSIS包中的变量是用来存储临时值的,变量使得整个SSIS包使用起来更加灵活。比如,我们可以遍历一个文件夹来获取文件夹下的所有文件的名称并把名称存储到一个变量中以便进一步处理。在SSIS包中,变量是区分大小写的,可以分为系统变量和用户定义变量。   一、系统变量   系统变量是由SQL Server Integration Services定义的,是用来存储包...

dipeichang0801的博客 1711

SQL Server Data Tools(SSDT) 中的SSIS简易 教程.pdf

SQL Server Data Tools(SSDT) 中的SSIS简易 教程.pdf

SQL2005 SSIS-在脚本组件中访问包变量

要想在脚本组件中访问包变量,首先必须设置脚本组件2个属性的值,如下ReadOnlyVariablesReadWriteVariables这2值指定了哪些变量可以访问,哪些变量可以改写(如有多个变量则用逗号分隔),如果你没有指定上面2个属性的值,则不能在脚本组件的代码中访问包变量下面我举一个从文件中加载内容到包变量的一个例子 1、首先我们定义2个变量 FileName 和 FileContents

风 3396

SSIS入门教程及简单示例

SSIS是Microsoft SQL Server Integration Services的简称,是生成高性能数据集成解决方案(包括数据仓库的提取、转换和加载 (ETL) 包)的平台。

Charles 抓包工具下载安装及基础使用

本篇内容主讲关于Charles抓包工具,从下载安装以及配置信息,证书的下载安装以及PC端设置代理配置和移动端设备配置代理,阐述关于Charles抓包工具面板的基础使用以及如何进行抓包和设置断点,对于软件测试以及对抓包感兴趣的读者可以翻阅!感谢大家的支持!!!

灵魂学者的博客 2958

SSIS记录

没有系统学习过,真心好累。。。完全靠摸索。。。 1、执行SQL任务 用于执行SQL语句,或者存储过程       这个地方要注意,返回的结果集要对应到变量的时候,结果集中设置变量,结果名称必须是0,1,2……对应SQL语句查询得到的结果顺序,填其他的是接收不到的。   输入SQL语句,语法直接使用SQL原身语法。 if not exists (Select 0 from ...

陈熙之的博客 8460

【ERROR】ERROR1: PROJ: proj_create_from_database: Cannot find proj.db - 环境变量配置与路径修复指南

本文详细解析了地理空间数据处理中常见的【ERROR】ERROR1: PROJ: proj_create_from_database: Cannot find proj.db 错误。该错误的根源是PROJ库无法定位其核心数据文件proj.db。文章提供了从问题诊断到修复的完整指南,包括如何在不同系统(Windows/macOS/Linux)和安装方式(Conda/pip/源码编译)下找到正确的proj.db文件路径,并通过设置PROJ_LIB环境变量(临时、代码内或永久)彻底解决问题,同时给出了进阶排查技巧和

m2n3o4p5的博客 557

SSIS系列文章收藏

http://blog.youkuaiyun.com/kk185800961/article/details/12398667 https://wenku.baidu.com/view/d16105abdd3383c4bb4cd20c.html https://wenku.baidu.com/view/2bbab72aed630b1c59eeb55c.html https://wenku.ba...

dengtangda9444的博客 1万+

win10+conda+pytorch-gpu安装

pytorch 官网上只有linux和Mac的程序包,没有windows系统的,但是windows系统还是可以用pytorch的。  github: https://github.com/peterjc123/pytorch-scripts 首先要安装anaconda: 推荐清华镜像 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ ...

一摩尔自由的博客 1万+

CTR-GCN 论文解读

提出了一种信道拓扑优化图卷积,该卷积可以动态有效地对信道拓扑进行建模。共享拓扑是一个参数化的邻接矩阵,作为所有通道的拓扑先验,并提供顶点之间的一般相关性。通过使用特定于通道的相关性细化共享拓扑,CTR-GC 获得了通道拓扑。

一杯水果茶!足矣~ 3088

SSIS入门

今天学习了用SSIS通过JOB将数据插入中间数据库,在这里和大家分享一下,首先用的数据库是SQL 2012 1)创建数据库Test1,Test2在数据库中创建数据表Student USE Test1 GO CREATE TABLE Student ( StudentID UNIQUEIDENTIFIER PRIMARY KEY, StudentName NVARCHAR(200) )

czh4869623的专栏 2万+

中国工商银行企业架构建设实践最全总结

中国工商银行参考IBM持续价值创新方法并吸收TOGAF等主流企业架构的框架理念,结合业务实际情况形成工行自己的企业架构方法论并实践,为数字化转型提供支撑。本案例通过介绍中国工商银行企业架构之业务架构设计方法,为其他银行企业架构建设提供参考。 企业架构是数字化转型的抓手,可以帮助企业规划、管理和实施数字化解决方案,以实现业务目标并适应不断变化的市场条件。中国工商银行通过战略目标指导业务架构的规划和设计,业务架构建模后指导IT架构建模。

银行信息系统应用架构详解 2732

SSIS学习之SSIS介绍

http://blog.youkuaiyun.com/hyit2004/archive/2008/01/24/2063498.aspx 12.1  SSIS介绍SSIS首先是在1997年的SQL Server 7.0中引入的,当时它的名称为数据转换服务(DTS)。SSIS属于ETL产品家族,ETL代表提取(Extraction)、转换(Transformation)和加载(Loading)。现

jackyxu_2008的专栏 7万+

Eplan设计师必会—伺服安全回路的设计方法

本文介绍了在EPLAN中设计伺服STO安全回路的方法。首先需查阅伺服驱动器说明书确定STO接线端子,重点关注双通道配置。设计步骤包括:使用黑盒子功能绘制驱动器外形,正确标注STO接线点,并连接安全继电器或PLC的安全输出。关键注意事项有:必须采用双通道独立布线,确保同步动作,遵循故障安全原则,使用常闭触点串联回路。文中以西门子V90和汇川伺服为例说明具体接线要求,并附有项目实例参考。

Qinmingyue13的博客 436

第9.3章 从CMake基础到自动驾驶实战:构建跨平台C/C++项目的全能指南

《CMake构建实战:项目开发卷》精要指南 本文系统梳理了许宏旭《CMake构建实战》核心内容,涵盖C++构建全流程: 基础构建:详解MSVC/GCC编译器使用、Makefile编写及静态/动态库构建方法 CMake核心:解析语法结构、变量控制、文件操作等关键命令,阐述项目全生命周期管理 实战应用:通过快速排序、手写数字识别项目演示现代CMake实践,特别针对自动驾驶领域给出多传感器融合、SLAM等场景的CMake配置方案 特色价值:本书填补了官方文档实例不足的空白,提供300+代码示例,是掌握工业级C++

行知SLAM 1343

SSIS(2012版本)连接MongoDB,使用SSIS2012导入MongoDB

引用至:https://arcanecode.com/2014/01/14/importing-mongodb-data-using-ssis-2012/ 1.版本号: SSIS:2012 MongoDB的C#驱动版本:1.7 下载地址:https://github.com/mongodb/mongo-csharp-driver/downloads 或者我上传到百度云...

Buggggggg 1750

uni-app - 最新实现将 uniapp 项目打包编译为 H5 网站,并上传部署到 web 服务器进行发布预览(从打包到发布完整流程步骤,Hbuilder 编译打包 h5 发行到 web 服务器)

uniapp,打包h5,打包编译H5网站,怎么打包h5,uniapp打包成H5部署到服务器教程,uniapp打包H5页面发布到服务器,uniapp开发,打包成H5部署到服务器_uniapp打包h5,uniapp如何打包h5项目,怎么把项目打包成H5,uniapp如何打包成H5并且放到web端上,打包成h5部署到服务器的步骤,打包发行到h5报错怎么办,如何将uniapp打包的h5网站放到服务器上,编译打包后怎么放到web服务器中,如何将uniapp开发的H5打包并部署到服务器,部署使用uniapp开发的h5

🏆 前端领域优质创作者 1万+

SSIS 自测题-数据流控件类

说明:以下是自己的理解答案,不是标准的答案,如有不妥烦请指出。 有些题目暂时没有答案,有知道的请留言,互相学习,一起进步。 133、请描述一下 Conditional Split 的使用方法和使用场景? 它可以写表达式吗? 它可以访问到上游数据的列,变量,以及使用函数吗? 根据不同的列的值,决定数据流的路径,可以写表达式进行判断,只能访问系统变量,用户变量,可以使用函...

weixin_33859231的博客 2万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ssis数据访问模式变量中的sql命令_Mycat主从模式搭建

3 安装 MySQL3.1yum 安装3.1.1上传本地 yum 文件mysql-community-release-el6-5.noarch.rpm3.1.2增加本地 yum 信息yum 安装,是通过远程的 yum 应用服务器下载安装包并安装软件的方式.yum 应用服务器中的数据是固定的增加本地 yum 信息,相当于增加一个新的 yum 应用服务器中的软件列表.yum localinstall ...

weixin_39608132的博客 3234

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

SSIS 连接 PostgreSQL

因为工作需要,得把psql的表放到SQL Server, 找到一个PGNP(http://www.pgoledb.com/) 的适配器,不过一看要300$就没有去尝试了. 官方倒是有ODBC的驱动.以下使用ODBC操作的过程记录. 1. 下载PostgreSQL ODBC驱动 http://www.postgresql.org/ftp/odbc/versions/msi/ 2. ...

deog54798的博客 1878

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

无法创建ssis数据流任务_SSIS中的数据分析任务概述

无法创建ssis数据流任务 The Data Profiling task in SSIS is an important task that can be used to assess the quality of data sources. Unfortunately, this component is not widely used by many business intellig...

culuo4781的博客 1330

ssis包部署到数据库_使用SSIS包将行标题和数据添加到平面文件中

ssis包部署到数据库 In this article, we will configure an SSIS package to generate a composite output in the flat-file destination. 在本文中,我们将配置一个SSIS包以在平面文件目标中生成复合输出。 问题概述 (Problem overview) Recentl...

culuo4781的博客 3648

SSIS实用教程(SQLServer2005)

创建新的 Integration Services 项目 SQL Server 2005 其他版本 2(共 3)对本文的评价是有帮助评价此主题 更新日期: 2005 年 12 月 5 日 在Microsoft SQL Server 2005 Integration Services (SSIS) 中创建包的第一步就是创建一个 Integration Services 项目。此项

4811

ssis lookup_SSIS中的LOOKUP转换概述

ssis lookup We will explore Lookup Transformation in SSIS in this article for incremental data loading in SQL Server. 我们将在本文中探索SSIS中的查找转换,以在SQL Server中进行增量数据加载。 In my previous articles, ...

culuo4781的博客 9011
上一篇: 数据仓库建模——渐变维度处理(转载)
下一篇: SQL Server 2005高可用性之复制(原创,首发于it168)
cpp872623
博客等级 码龄12年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值