在Sql Server Intergration Service中设置Catalog下所部署所有项目的参数值
在Sql Server 2012开始,微软给SSIS添加了Project Model这种新的项目类型,与之对应的是在Sql Server数据库引擎中引入了Intergration Services Catalog这种新的部署方式。
当你在Sql Server中启用Intergration Service Catalog后,就会在Intergration Services Catalog下多出一个系统文件夹叫SSISDB,如下图所示我们已经发布了一个SSIS项目SSIS_LOG_TESTING到子文件夹Demo_Project_Folder下:

而在数据库中,我们也可以看到Sql Server自动生成了一个名叫SSISDB的数据库,该数据库就是用来存储Intergration Services Catalog下的项目数据的,请不要乱动其中的数据。

用过SSIS Project Model的开发人员应该都知道,这种新的项目类型相比老的Package Model有很多好处,其中一个好处就是可以在项目级别上定义全局参数,SSIS项目中的所有dtsx包都可以访问项目参数,如下图所示:

而当项目发布到Intergration Services Catalog后,也可以在Intergration Services Catalog上直接修改这些项目参数的值:


但是随之而来的问题是,随着在Intergration Services Catalog部署的SSIS项目越来越多,有没有什么办法能过统一管理这些SSIS项目的参数呢?因为Project Model的项目参数有个很大的缺点,那就是没有办法将其值存储在数据库中,而老的Pakacge Model是可以将SSIS项目中Configuration中的值存储在数据库表中的。所以导致了Project Model的项目参数没法集中管理,设想一下你的Intergration Services Catalog下如果有100个SSIS项目,假如这100项目都有一个同名的项目参数叫UserName,你现在想更改这100个项目的UserName项目参数,你只有手动打开每个项目的配置去设置UserName项目参数,是一件很耗时的操作。
而Intergration Services Catalog生成的数据库SSISDB中提供了一系列视图和存储过程,可以让我们用Sql语句来操作每个SSIS项目的项目参数,如下图所示:

其中有一个视图和存储过程特别有用,这里列出来:
视图catalog.object_parameters
该视图可以返回在Intergration Services Catalog中发布所有SSIS项目的项目参数信息,官方介绍如下:
Displays the parameters for all packages and projects in the Integration Services catalog.
| Column name | Data type | Description |
|---|---|---|
| parameter_id | bigint | The unique identifier (ID) of the parameter. |
| project_id | bigint | The unique ID of the project. |
| object_type | smallint | The type of parameter. The value is 20 for a project parameter and the value is 30 for a package parameter. |
| object_name | sysname | The name of the corresponding project or package. |
| parameter_name | sysname(nvarchar(128)) | The name of the parameter. |
| data_type | nvarchar(128) | The data type of the parameter. |
| required | bit | When the value is 1, the parameter value is required in order to start the execution. When the value is 0, the parameter value is not required to start the execution. |
| sensitive | bit | When the value is 1, the parameter value is sensitive. When the value is 0, the parameter value is not sensitive. |
| description | nvarchar(1024) | An optional description of the package. |
| design_default_value | sql_variant | The default value for the parameter that was assigned during the design of the project or package. |
| default_value | sql_variant | The default value that is currently used on the server. |
| value_type | char(1) | Indicates the type of parameter value. This field displays V when parameter_value is a literal value and R when the value is assigned by referencing an environment variable. |
| value_set | bit | When the value is 1, the parameter value has been assigned. When the value is 0, the parameter value has not been assigned. |
| referenced_variable_name | nvarchar(128) | The name of the environment variable that is assigned to the value of the parameter. The default value is NULL. |
| validation_status | char(1) | Identified for informational purposes only. Not used in SQL Server 2017. |
| last_validation_time | datetimeoffset(7) | Identified for informational purposes only. Not used in SQL Server 2017. |
Permissions
To see rows in this view, you must have one of the following permissions: +
READ permission on the project
Membership to the ssis_admin database role
Membership in the sysadmin server role.
Row-level security is enforced; only rows that you have permission to view are displayed.
该视图查询结果截图如下:

存储过程catalog.set_object_parameter_value
该存储过程可以设置在Intergration Services Catalog中部署SSIS项目的项目参数,官方介绍如下:
Sets the value of a parameter in the Integration Services catalog. Associates the value to an environment variable or assigns a literal value that is used by default when no other values are assigned.
Syntax
catalog.set_object_parameter_value [@object_type =] object_type
, [@folder_name =] folder_name
, [@project_name =] project_name
, [@parameter_name =] parameter _name
, [@parameter_value =] parameter_value
[ , [@object_name =] object_name ]
[ , [@value_type =] value_type ]
Arguments
[@object_type =] object_type The type of parameter. Use the value 20 to indicate a project parameter or the value 30 to indicate a package parameter. The object_type is smallInt.
[@folder_name =] folder_name The name of the folder that contains the parameter. The folder_name is nvarchar(128).
[@project_name =] project_name The name of the project that contains the parameter. The project_name is nvarchar(128).
[@parameter_name =] parameter_name The name of the parameter. The parameter_name is nvarchar(128).
[@parameter_value =] parameter_value The value of the parameter. The parameter_value is sql_variant.
[@object_name =] object_name The name of the package. This argument required when the parameter is a package parameter. The object_name is nvarchar(260).
[@value_type =] value_type The type of parameter value. Use the character V to indicate that parameter_value is a literal value that is used by default when no other values are assigned prior to execution. Use the character R to indicate that parameter_value is a referenced value and has been set to the name of an environment variable. This argument is optional, the character V is used by default. The value_type is char(1).
Return Code Value
0 (success)
Result Sets
None
Permissions
This stored procedure requires one of the following permissions:
READ and MODIFY permissions on the project
Membership to the ssis_admin database role
Membership to the sysadmin server role
Errors and Warnings
The following list describes some conditions that may cause the stored procedure to raise an error:
The parameter type is not valid
The project name is not valid
For package parameters, the package name is not valid
The value type is not valid
The user does not have the appropriate permissions
Remarks
If no value_type is specified, a literal value for parameter_value is used by default. When a literal value is used, the value_set in the object_parameters view is set to
1. A NULL parameter value is not allowed.If value_type contains the character
R, which denotes a referenced value, parameter_value refers to the name of an environment variable.The value
20may be used for object_type to denote a project parameter. In this case, a value for object_name is not necessary, and any value specified for object_name is ignored. This value is used when the user wants to set a project parameter.The value
30may be used for object_type to denote a package parameter. In this case, a value for object_name is used to denote the corresponding package. If object_name is not specified, the stored procedure returns an error and terminates.
该存储过程的执行结果如下:
EXEC catalog.set_object_parameter_value 20,N'Demo_Project_Folder',N'SSIS_LOG_TESTING',N'ProjectVersion',N'2.0.0.0'


在Sql Server Intergration Service中设置Catalog下所部署所有项目的参数值的更多相关文章
- SSRS (SQL Server Report Service) 在IE9, IE10下显示不全的解决办法
原文:SSRS (SQL Server Report Service) 在IE9, IE10下显示不全的解决办法 在做项目的过程中遇到SSRS与IE9, IE10不兼容的情况,具体表现为报表页面在IE ...
- SQL Server Reporting Service(SSRS) 第六篇 SSRS 部署总结
前段时间完成了第一批次SSRS报表的开发,本来以为大功已经告成,结果没有想到在整个发布与部署过程中还是遇到了很多的问题,现将这些问题一一列举出来,希望对以后能够有所启发! 1. 关于数据源与数据集的发 ...
- SQL Server R2 2008中的SQL Server Management Studio 阻止保存要求重新创建表的更改问题的设置方法
在2008中会加入阻止保存要求重新创建表的更改这个选项.症状表现为修改表结构的时候会"阻止"你. SQL Server 2008“阻止保存要求重新创建表的更改”的错误的解决方案是本 ...
- SQL Server Reporting Service(SSRS) 第一篇 我的第一个SSRS例子
很早就知道SQL SERVER自带的报表工具SSRS,但一直没有用过,最近终于需要在工作中一展身手了,于是我特地按照自己的理解做了以下总结: 1. 安装软件结构 SSRS全称SQL Server Re ...
- SQL Server 2005 Service Broker
一.引言 SQL Server 2005 的一个主要成就是可以实现可靠.可扩展且功能完善的数据库应用程序.与 .NET Framework 2.0 公共语言运行库 (CLR) 的集成使开发人员可以将重 ...
- C#面试题(转载) SQL Server 数据库基础笔记分享(下) SQL Server 数据库基础笔记分享(上) Asp.Net MVC4中的全局过滤器 C#语法——泛型的多种应用
C#面试题(转载) 原文地址:100道C#面试题(.net开发人员必备) https://blog.csdn.net/u013519551/article/details/51220841 1. . ...
- Sql Server Report Service 的部署问题(Reporting Service 2014為什麼不需要IIS就可以運行)
http://www.cnblogs.com/syfblog/p/4651621.html Sql Server Report Service 的部署问题 近期在研究SSRS部署问题,因为以前也用到过 ...
- Sql Server Report Service 的部署问题
近期在研究SSRS部署问题,因为以前也用到过SSRS报表,但当时开发的报表是有专门的集成系统的,不需要我自己去部署,所以对这一块的部署也不熟悉,我记得当时我是直接开发出一个SSRS 报表,然后会通过自 ...
- [转]Sql Server Report Service 的部署问题
本文转自:https://www.cnblogs.com/syfblog/p/4651621.html 近期在研究SSRS部署问题,因为以前也用到过SSRS报表,但当时开发的报表是有专门的集成系统的, ...
随机推荐
- JavaScript的简单入门
一.导读 简介:JavaScript简称js,是基于对象和事件驱动的脚本语言,主要运用于客户端.原名LiveScript,本身和Java没有任何关系,但语法上很类似. 特点:交互性(它可以做的就是信息 ...
- chmod 命令详解
chmod 作用:修改目录或文件权限(= 赋值不管存在与否, + 增加权限)符号链接的权限无法变更, 如果用户对符号链接修改权限, 其改变会作用在被链接的原始文件. 参数: -R: 递归修改处理 -v ...
- lesson - 7 vim 详解
1. vim简介vim是从vi发展出来 ,第一个版本由布莱姆·米勒在1991年发布 ,它基于VIM许可证,兼容GPL. 官网 www.vim.org 2. 安装vim: yum install -y ...
- 安装两个JDK后配置环境变量没用?
在实际开发中,由于项目的需要,可能JDK的版本是不同的.比如我们前一个项目所需JDK版本是1.6的,项目完成后,下一个项目JDK版本又是需要1.7的,为了防止由于切换项目我们需要频繁的安装卸载JDK, ...
- Looping over the databases on a server
SP_MSFOREACHDB 获得所有实例下数据库名称 EXEC sp_MSForEachDB 'PRINT "?"' sp_MSforeachtable USE MAST ...
- 【Python3之字符编码】
一.字符集和字符编码 1.定义 计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的英文.汉字等字符是二进制数转换之后的结果.通俗的说,按照何种规则将字符存储在计算机中,如'a'用什么表示,称 ...
- HDFS High Availability Using the Quorum Journal Manager
http://hadoop.apache.org/docs/r2.9.0/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.htm ...
- 那些年原生js实现的楼层跳转
最近做一个需求~~楼层跳转(京东.淘宝侧边导航),由于现在项目都用框架,所以 jquery是不能再用了,只好自己原生写一个,其实实现起来很简单,无非就是获取到每个楼层距离文档顶部的距离,然后通过控制滚 ...
- 巧用CSS实现宝马LOGO
某天突然遇到一个有趣的面试题,需用CSS实现一个宝马的Logo,第一反应就是这不是老生常谈的八卦图的小变形吗,只需用伪元素就可轻易的实现啦,但是细看要求说只能在一个标签里写样式,所以呜呜呜...请教下 ...
- 自学Aruba之路
自学Aruba之路[第一回]:体系结构 1.1 自学Aruba1.1-Aruba体系结构-产品线 1.2 自学Aruba1.2-WLAN一些基本常识 1.3 自学Aruba1.3-W ...