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

时间:2013-02-25 01:44:52

标签: ssis

任何人都知道如何在SSIS中为系统集成测试环境,用户验收测试环境和生产环境等不同环境指定不同的连接字符串?它是通过定义多个连接管理器来完成的,还是我们可以定义多个配置文件并指向我们的连接字符串?

1 个答案:

答案 0 :(得分:2)

您不需要为同一个数据库建立多个连接。

在SSIS 2008中:

使用表达式定义连接字符串是个好主意。这就是你如何做到的:

假设您在连接管理器中添加了一个新的OLEDB连接。复制ConnectionString属性的值。它看起来像这样: Data Source =(local); Initial Catalog = Learn; Provider = SQLNCLI10.1; Integrated Security = SSPI; Application Name = SSIS-RaggedFile- {03053F2E-8101-4985-9F2B-8C2DDE510065}(local).Learn; Auto Translate =假;

删除非必需品: Data Source =(local); Initial Catalog = Learn; Provider = SQLNCLI10.1; Integrated Security = 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的变量(例如),并且有人在部署时更改了该变量的一部分。