Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SSIS中为多个环境定义连接字符串?_Ssis - Fatal编程技术网

如何在SSIS中为多个环境定义连接字符串?

如何在SSIS中为多个环境定义连接字符串?,ssis,Ssis,有人知道如何在SSIS中为不同的环境指定不同的连接字符串吗?例如系统集成测试环境、用户验收测试环境和生产环境 是通过定义多个连接管理器完成的,还是我们可以定义多个配置文件并将连接字符串指向?对于同一个数据库,您不需要有多个连接 在SSIS 2008中: 最好使用表达式定义连接字符串。这就是你可以做到的: 假设您在连接管理器中添加了一个新的OLEDB连接。复制ConnectionString属性的值。它看起来是这样的: 数据源=(本地);初始目录=学习;Provider=SQLNCLI10.1;综

有人知道如何在SSIS中为不同的环境指定不同的连接字符串吗?例如系统集成测试环境、用户验收测试环境和生产环境


是通过定义多个连接管理器完成的,还是我们可以定义多个配置文件并将连接字符串指向?

对于同一个数据库,您不需要有多个连接

在SSIS 2008中:

最好使用表达式定义连接字符串。这就是你可以做到的:

假设您在连接管理器中添加了一个新的OLEDB连接。复制ConnectionString属性的值。它看起来是这样的: 数据源=(本地);初始目录=学习;Provider=SQLNCLI10.1;综合安全=SSPI;应用程序名称=SSIS RaggedFile-{03053F2E-8101-4985-9F2B-8C2DDE510065}(本地)。学习;自动翻译=假

删除非必需品: 数据源=(本地);初始目录=学习;Provider=SQLNCLI10.1;综合安全=SSPI

现在在控件表面级别创建三个新变量:sServer、sDb和sProvider。这三个变量的类型都是字符串。使用本例,它们的值将是(local)、Learn和SQLNCLI10.1

返回连接的ConnectionString属性。并将其值设置为

"Data Source=(local);Initial Catalog=Learn;Provider=SQLNCLI10.1;Integrated Security=SSPI;" 
现在,用创建的变量替换服务器、数据库和提供程序,使表达式如下所示:

"Data Source=" + @[User::sServer] + ";Initial Catalog=" + @[User::sDb] + ";Provider=" + @[User::sProvider] + ";Integrated Security=SSPI;"
当我们从一个环境移动到另一个环境时,可能会遇到不同版本的数据库——因此,为提供者提供一个变量也是很有帮助的

现在,可以在部署时更改这些值

在SSIS 2012中- 只要稍作改动,这种方法仍然有效。将这三个变量更改为参数并使其成为必需的。这样,在部署部署时,您将被迫更改这些值。这只是一个起点。了解服务器环境


注意:我认为一个变量应该有原子值。这有助于避免由于输入错误而导致的任何错误。这就是为什么我创建了三个独立的变量,而不是一个名为sCnxn的变量(例如),并在部署时让人更改该变量的一部分。

SSIS的哪个版本?