【问题标题】:SSIS parent child packages share connection detailsSSIS 父子包共享连接详细信息
【发布时间】:2014-09-08 11:52:38
【问题描述】:

SSIS 2008。一个父包,多个子包。所有的包都连接到两个 SQL Server 2008 R2 服务器。我想要实现的是一种配置,其中包含两个 SQL Server(服务器、数据库、用户名、密码)的连接详细信息。所以所有的包(父母和孩子)都可以使用这个配置。

我能想到的一种方法是为父级和所有子级中的连接详细信息设置变量。并在子项中设置变量以使用父项的值。所以我只有一个地方可以设置连接细节,就是父级。但我需要为每个孩子创建变量。我有十几个孩子,所以打字和设置工作量很大。

那么有没有更好的方法来做到这一点?

【问题讨论】:

  • 或者你可以让所有的子包直接引用配置。或者您可以使用注册表或环境变量配置。如果可能,请尝试使用 windows 身份验证,这样您就不需要指定用户和密码。
  • 我一开始尝试了包配置。但并非每个包都会使用相同的连接。有些人同时使用,有些人使用其中之一。我发现包配置的问题是当多个包使用相同的配置文件时,它们往往会相互混淆。
  • 他们以什么方式互相纠缠?
  • 好吧,也许我没有这方面的经验。我最初的想法是一个配置文件具有所有连接,然后所有包都可以引用该文件以获取所需的连接。但是有些包并没有使用所有连接,当我尝试使用该配置文件时,它要求我重用现有的配置文件或覆盖。我选择了重用,然后发现文件被该包中的仅连接覆盖(因此包中未使用的连接丢失)。
  • 后来我发现正确的方法是一个文件一个连接,跨包的同一个连接使用相同的名称。然后在每个包中只应用需要的配置文件。

标签: ssis


【解决方案1】:

尝试使用 SQL 表配置。它们比配置文件更容易维护和阅读。将每个连接分解为自己的配置,以便您可以根据需要将它们应用于包,而不是将它们全部应用于每个包。

确保每个包中连接管理器的名称都相同 - 配置过滤器区分大小写。

【讨论】:

  • 这似乎没有配置文件选项那么混乱,因为只需要一个表并且每个连接都由过滤器标识。
  • 但是对于配置文件和sql选项,我需要在表或文件中手动设置密码,因为SSIS不导出密码。
  • 对,您需要将配置从服务器迁移到服务器。不同环境的凭据和服务器名称会有所不同。创建一个脚本来处理此问题,该脚本可以通过您的包更改或数据库脚本进行迁移。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 2011-11-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多