[译]Stairway to Integration Services Level 15 – SSIS 参数回顾
介绍
在本文中我们会研究SSIS变量姐妹: SSIS 变量. 我们会演示参数配置,通过包参数管理动态属性值,然后会演示SSIS包执行的时候参数怎么被配置的.
SSIS Parameters 101
SSIS参数和SSIS变量很像. 在SSIS 2012里面 变量和参数是可以互换的. 不过有重要的不同点:
- SSIS包开始执行以后,参数是只读的.
- 参数的作用域为项目或者包级别.
- 参数有 Sensitive 属性.
- 参数有 Required 属性.
- 因为参数在SSIS包执行的之后参数是只读的.所以参数值无法通过表达式组合.
项目参数 Project Parameters
项目参数可以被SSIS项目中所有包使用. 不过他们必须在Project Deployment 模型中使用.
Project Deployment 是 SQL Server 2012 Integration Services新功能. 项目参数是Project Deployment 模型的新特性之一. 其他特性包括包参数, 项目连接管理器, 以及部署到新的 SQL Server 2012 Integration Services Catalog.
在Solution Explorer, 双击Project.params 对象:

Figure 3
项目参数窗口工具栏有三个按钮:
- Add Parameter
- Delete Parameter
- Add Parameters to Configurations
Add Parameter
点击Add Parameter按钮添加一个新的项目参数到 My_First_SSIS_Project SSIS 项目:

Figure 4
“Parameter” 被添加到 SSIS 项目. 参数默认属性如下:
- Data Type: Int32
- Value: 0
- Sensitive: False
- Required: False
- Description: [Empty String]
对比了一下参数数据类型和变量数据类型.:
- Boolean
- Byte
- DateTime
- Decimal
- Double
- Int16
- Int32
- Int64
- SByte
- Single
- String
- UInt32
- UInt64
下面三个是变量特有的数据类型:
- Char
- DBNull
- Object
Sensitive(敏感) 属性是一个布尔值默认为 False. 设置为True把变量值标记为敏感的. 如果为 True, SQL Server 2012 Integration Services 会加密这个值. 这取决于 ProtectionLevel 属性的设置. 可以在项目属性里面进行配置

Figure 7

Figure 8
注意: 参数的Sensitive 属性一旦被设置为True , Value值就会被掩盖.
Required 属性也是布尔值,默认为 False. 当值为False的时候表示SSIS 项目执行时并非必要,若设置为True,则该值必须提供SSIS项目执行时使用(必须有值).
为了演示目的,配置如下:
- Name: Parameter
- Data Type: Int32
- Value: 0
- Sensitive: True
- Required: True
- Description: Test Parameter

Figure 9
包参数 Package Parameters
包参数可以在参数标签上配置:

Figure 13
开始配置SSIS包参数之前先下载点真实数据 WeatherData_Dec08.zip
建立个新的包变量 SourceFilePath
Name: SourceFilePath
- Data Type: String
- Value: <the location of sensor1-all.csv on your system>
- Sensitive: False
- Required: True
- Description: Weather data source file

Figure 16
返回Control Flow添加一个Data Flow Task 然后重命名至“DFT Stage Temperature and Humidity” :

Figure 18
双击 “DFT Stage Temperature and Humidity” 拖一个 Flat File Source 然后改名为“FFSrc Temperature and Humidity”:

Figure 19
双击FFSrc Temperature and Humidity 然后创建连接管理器 ,把连接管理器的名字改为“FFCM Temperature and Humidity.” 选择你刚才下载的sensor1-all.csv 文件

Figure 28
完成后如下 :

Figure 29
在SQL Server里面创建一个数据库.
Use master
go
If Not Exists(Select name
From sys.databases
Where name = 'WeatherData')
begin
print 'Creating database WeatherData'
Create Database WeatherData
print 'WeatherData database created'
end
Else
print 'WeatherData database already exists.'
Listing 1
再拖一个 OLE DB Destination ,然后重命名为 “OLEDest Stage Temperature”:

Figure 35
双击 “OLEDest Stage Temperature” 创建连接管理器与刚才建立的 WeatherData数据库连接:
Figure 41
表格名称改为StageTemperature

Figure 42
点击“FFCM Temperature and Humidity”平面文件连接管理器,然后他属性里面把 Expressions的 ConnectionString 属性设置为 SourceFilePath 包参数 :

Figure 48
按F5执行包,结果如下:

Figure 55
如果一切都没问题,那么你的执行结果会和 Figure 55 相同.
现在把 sensor1-all.csv 移到上级目录 Dec08 下 :

Figure 56
再次执行包..会出现类似下面的报错:

Figure 57
停掉 debugger. 修正 SourceFilePath 的路径:

Figure 58
现在再次运行包 :

Figure 59
测试成功
原文链接: http://www.sqlservercentral.com/articles/Integration+Services+(SSIS)/106428/
[译]Stairway to Integration Services Level 15 – SSIS 参数回顾的更多相关文章
- [译]Stairway to Integration Services Level 13 - SSIS 变量回顾
介绍 在前一篇中我们组合了已经学过的事件冒泡 event bubbling, 日志记录 logging, 和父子模型 Parent-Child pattern 建立了自定义的SSIS包日志记录. 本文 ...
- [译]Stairway to Integration Services Level 8 - SSIS 工作流管理高级
介绍 在前两个章节我们,建立了一个新的SSIS包,简单的使用了一下scripting还有优先约束,并且测试了MaxConcurrentExecutables 属性. 同时实验了 “On Succe ...
- [译]Stairway to Integration Services Level 6 - SSIS 工作流管理基础
简介 在之前的章节中,我们学习了增量载入数据. 本文中.我们通过优先约束(Precedence Constraints)来管理SSIS的工作流. 添加一个SSIS包 图 1 将新建的Package1. ...
- [译]Stairway to Integration Services Level 7 - SSIS 工作流管理中级
介绍 前一个章节我们对SSIS的优先约束做了初步了解,并且实验了MaxConcurrentExecutables 包属性的设置. 本文将测试“On Success”, “On Completion”, ...
- [译]Stairway to Integration Services Level 16 – Flexible Source Locations (多文件导入)
介绍 在本文中我们将利用SSIS参数,变量 以及 Foreach Loop Container 从多个源动态导入数据. 开始前我们先下载一些数据.WeatherData_Dec08_Apr09.zip ...
- [译]Stairway to Integration Services Level 12 - 高级日志配置
介绍 本文中,我们将结合之前学习的时间冒泡,日志记录,以及复制模型.建立一个自定义的SSIS包日志模型. SSIS Task事件回顾 Reviewing SSIS Task Events 在做实 ...
- [译]Stairway to Integration Services Level 9 - Control Flow Task Errors
介绍 在本文中,我们会实验 MaximumErrorCount和ForceExecutioResult 故障容差属性,并且还要学习Control Flow task errors, event han ...
- [译]Stairway to Integration Services Level 18 – 部署和执行
介绍 在本文中,我们要创建一个SSIS Catalog 实例,部署我们的项目,并且运行 weather data loader 包. SSIS 2012 部署模型 SSIS 2012 Deploy ...
- [译]Stairway to Integration Services Level 11 - 日志配置
介绍 在前一个章节我们讨论了事先行为,分享了如何操作默认的行为和时间冒泡,并且介绍了父子模型. 本文中,我们会配置SSIS日志. 进行简单及高级日志配置,存储,和检索的实验.并且生成自定义日志信息. ...
随机推荐
- 自己动手写RTP服务器——用RTP协议传输TS流
上一篇文章我们介绍了关于RTP协议的知识,那么我们现在就自己写一个简单的传输TS流媒体的RTP服务器吧. 预备知识 关于TS流的格式:TS流封装的具体格式请参考文档ISO/IEC 13818-1.这里 ...
- openStack开源云repo db local or on-line 实战部署之Ruiy王者归来
preface/pre,获取OpenStack核心模块组件及其子组件包(当前仅针对centos6*)及其依赖包 eg,picture
- localstroge与cookie的区别
HTML5本地存储是一种让网页可以把键值对存储在用户浏览器客户端的方法.像Cookie一样,这些数据不会因为你打开新网站,刷新页面,乃至关闭你的浏览器而消失. 而与Cookie不同的时,这些数据不会每 ...
- jar包问题
解决方法: 1右键项目build path的lib的add jars添加进来
- linux下curl编程
LibCurl是免费的客户端URL传输库,支持FTP,FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE ,LDAP等协议,其主页是http: ...
- 七日筑基——C#第二天
上一次讲到了变量,变量这个东西可以说是编程的基础,主要的作用就是用来存放数据,就跟做菜一样的,不同的菜要放在不同类型的容器中,那么不同的数据也需要存放在不同类型的变量里.先放张饭菜的图给大家看看,增加 ...
- 更改mysql 数据库名称
//创建新数据库 CREATE DATABASE hbwebTemporary; //移植每个表 RENAME TABLE hbweb.aircraft_info TO hbwebTemporary. ...
- tomcat 部署web项目异常
项目部署到Tomcat报这样的异常:validateJarFile jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending cla ...
- 当前项目与当前环境的JDK版本不匹配”Bad version number in .class file“
java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.d ...
- Cocos2d-x基础篇C++
1.C++类和对象 类的公有成员可以使用成员访问运算符(.)访问. (::)是范围解析运算符.调用成员函数是在对象上使用(.)运算符. 2.C++继承(C++中父类称为基类,子类称为派生类) clas ...