如何在SSIS中设置表名变量
发布网友
发布时间:2022-04-08 10:18
我来回答
共1个回答
热心网友
时间:2022-04-08 11:48
一、SSIS变量简介
SSIS(SQL Server Integration Services,SQL Server整合服务)变量分分为两种,一种是系统变量,一种用户定义的变量。系统变量包括有关包、容器、任务或事件处理程序的非常有用的信息。例如,在运行时,MachineName系统变量包含运行包含的计算机的名称,StartTime变量包开始运行的时间。系统变量是只读的。在SSIS中,用户变量是用户在开发的过程中根据需要申明的变量。用户变量可以使用在脚本中,在由优先约束、For循环容器、派生列转换和条件性拆分转换使用的表达式中,以及在更新属性值的属性表达式中。
在各种编程语言中申明的变量一般情况下都会有作用范围的,SSIS变量也不例外,SSIS变量也是有作用范围的。根据作用范围分类,变量分为包变量和组件变量。包变量在包任何一个组件中都可以调用,组件变量只能够在声明变量的组件中有效。在变量的窗口中可以看到变量的作用域。
可以看到i变量的作用域是整个Package1包,而myconfig变量作用域是数据流任务组件。
二、SSIS用户变量的声明、赋值、使用
1、申明变量
申明变量是非常简单、如果你要申明包变量,只要单击控制流选项卡,然后在包开发区域空白处单击右键选择变量命令,或者新建变量按钮就新建一个变量,输入名称,选择数据类型,赋初值就完成了。
如果要声明某数据流任务组件使用的变量,只要双击该数据流任务组件,在流控制控制选项卡空白的地方单击右键选择变量命名,在变量窗口中新建一个变量命令,在变量窗口中新建一个变量,这时变量的作用域就是你选择的流任务组件。
2、赋值
在实际开发中,除了在变量声明的时候给变量赋值外,还有两种方式,一种是通过执行SQL任务组件返回值的方式给变量赋值,一种是通过脚本组件来给变量赋值。
在执行SQL任务组件方法是先设置好组件的数据库连接属性,然后输入从数据库取数据的SQL语句,设置组件返回的结果集为单行。在结果集界面中单击“新建”,在结果集那一列输入你刚才SQL返回列的名称,在变量名称列选择你要赋值的变量
图中红色方框中的SQL语句非常简单,返回单行,结果是1。在图4中,将返回的result列的一行赋值给用户变量i。
利用脚本组件赋值变量比较简单,只需要设置脚本组件的ReadOnlyvariable或者ReadWriteVariable,将变量的名称设置他们的值(多个变量以逗号分割),它们的区别是前者在脚本组件只能够读,或者可以读写。然后在脚本组件中通过
Dts.Varables("变量名称").Value=值
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后赋值给另外一个变量。
sqlserver怎么配置ssisd包
1、SSIS Project默认的部署模式是Project Deployment Model,在解决方案的工程列表中选中工程,右击弹出快捷菜单,点击“Convert to Package Deployment Model”,将Project的部署模式转换为包部署模式。2、切换到包部署模式之后,Project名称之后显示模式名称:(package deployment model)3、向Package中添加一个...
MicrosoftSQLServer2008Excel数据如何导入
1、选择要导入的数据库---任务---导入数据。;2、选择excel数据源--浏览文件。注意如果excel中首行数据为字段,应勾选“首行包含列名称”。;3、按照提示单击下一步后选择服务器填写验证信息和目标数据库。;4、点击下一步,确定导入的类型。;5、选择数据库--选择源表和原视图,如果不选则目标,则会...
在SQL sever2000中 怎样设置服务器角色
create user username for login username --将用户TestUser添加到TestRole角色中 exec sp_addrolemember 'ProgramerRole','username '--执行Sql Server Profiler是服务器级权限,所以在master库中授权 USE master;grant alter trace to auto;注:据库引擎优化顾问必须由具有系统管理员权限的用户进行初始化。
SSIS中怎么用创建好的包配置文件连接Oracle
1、打开包配置界面,单击“添加”按钮添加一个包配置。2、在包配置向导界面选择“xml配置文件”,单击浏览按钮,在弹出的窗口中为包指定路径和文件名,这里的包配置文件名为 ConnectionConfig.dtsConfig(xml文件)。3、在第三个界面中选择需要在包配置中设置的一些属性,这里可以为SSIS包的组件属性、变量等...
SSAS项目部署的若干问题
--- 仓库表(维度表):仓库ID(主键),仓库名称,仓库地点...客户表(维度表):客户ID,仓库ID(主键),客户CODE(主键)你是要做雪花型的CUBE吗,客户表应该是客户ID为主键,如果使用雪花维度可以将仓库ID(主键),客户CODE(主键)设置成外键。--- 错误11OLAP 存储引擎中存在错误: 处理“t ...
SSIS 关于临时表的问题
而保持同一连接。但SSIS2005有BUG,在你的query string包含?时,也就是要传入参数时,即使设置了RetainSameConnection为true也是不保持同一连接的,相应的#私有临时表也只在使用变量的那个任务中用完就释放了,这个我以前的项目也遇到过这个问题,建议你使用其它方法来绕过这个bug。
无线网络安全机制怎样设置
步骤 1:我们首先要修改无线路由器设置菜单中允许我们访问这个路由器的默认用户名和口令。几乎在所有的技术支持网站上都有这些默认的用户名和口令,因此,任何人都能访问采用厂商设置的路由器。更换用户名和口令是非常重要的,因为如果向路由器输入正确的口令,我们能够采取的任何其它安全措施都会被绕过。步骤...
如何使用 SQL Server 代理作业运行包
单击“日志记录”选项卡,添加日志提供程序。 选择“日志提供程序”列表中的一个日志提供程序,然后键入连接字符串。单击“设置值”选项卡,将属性和变量映射为值。注意:属性路径使用此语法:\Package\<容器名称>.<属性名称>。 根据包结构的不同,容器可能包括其他容器,在这种情况下,嵌套的容器由反斜杠...
如何在SQL中新建一个用户,只能管理其中一个数据库
1、首先,打开sql查询器,连接上相应的数据连接,例如test连接。2、点击“查询”按钮,输入:grant create,select,insert,update,delete,drop,alter on stu.* to stu_admin@"%" identified by "";,点击运行按钮。3、之后点击新建连接,输入刚才新建的用户。4、之后该用户之后管理test数据库。
sqlserver调oracle怎么接收返回表
1. 在SQL Server中创建一个Linked Server,指向Oracle数据库。可以使用SQL Server Management Studio中的“对象资源管理器”来创建Linked Server,或者使用T-SQL命令来创建。2. 在创建Linked Server时,需要指定连接到Oracle数据库的相关信息,包括服务器名称、登录信息和数据库名称等。3. 一旦创建了Linked ...