1

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

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

4

1 回答 1

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;自动翻译=假;

删除非必需项:Data Source=(local);Initial Catalog=Learn;Provider=SQLNCLI10.1;Integrated Security=SSPI;

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

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

"Data Source=(local);Initial Catalog=Learn;Provider=SQLNCLI10.1;Integrated Security=SSPI;" 

现在,将 server、db 和 provider 替换为您创建的变量,使您的表达式如下所示:

"Data Source=" + @[User::sServer] + ";Initial Catalog=" + @[User::sDb] + ";Provider=" + @[User::sProvider] + ";Integrated Security=SSPI;"

当我们从一个环境转移到另一个环境时,我们可能会遇到不同版本的数据库 - 因此为提供者提供一个变量也是有帮助的。

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

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

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

于 2013-02-25T05:08:55.477 回答