1

背景: Server1有 4 个表的源数据库。Server2是具有 4 到 5 个表(以及一些额外字段)的目标数据库。在将数据从 Server1 移动到 Server2 之前,我们有一个字段映射和一些额外的处理(即截断、连接、..)。我们有 4 个独立的 dtsx 包 - 每个包一个,并且有一个 SQL 作业按顺序依次调用每个 dtsx 包。

平台:SQL 2005 & SSIS 2005

现在,您可能会猜到每个 dtsx 包都会在连接管理器中复制“源”和“目标”数据库连接。当我们更改远程目标数据库中的任何设置时,我们必须更改每个 dtsx 中的连接 - 将远程数据库连接信息保存在一个地方的选项有哪些?

这是我知道的一些-

  1. 创建一个父 dtsx,它将依次调用 4 个 dtsx 中的每一个(与作业中所做的相同)并传递此(父)包中定义的连接变量(示例)。但这意味着作业中的单个 dtsx 包步骤不会使将来易于调试(目前我们可以很容易地确定哪个步骤失败 - 所以哪个表/dtsx 有问题)

  2. 有点传统但很有效 -使用数据库同义词。我们已经在数据比较 SP 中使用了一些远程表的同义词。如果我创建 4 个新的同义词 - 每个远程表一个。我可以通过它们的同义词直接在 dtsx 中引用这些表。稍后如果有任何更改 - 我需要更改并重新运行将删除并重新创建同义词的脚本(我也可以远程执行此操作!)

我做简单的 dtsx 设计和编程,所以请原谅我的知识,让我知道最好的方法。

4

1 回答 1

1

您正在寻找的是Package Configurations

基本上,配置值只是 SSIS 中某些属性的存储键/值对(例如,您的连接管理器的连接字符串。)

您可以将其存储为多种格式(请参阅链接) - 我个人使用 XML 文件,因为我有一个处理部署的支持团队并且他们“获取”文件。

然后每个包仅在其自己的配置中引用该 XML 文件。当包运行时,它将使用该连接的连接字符串的值,因此每个包将使用 XML 文件中的任何内容(或您选择的任何配置格式。)

基本步骤:

  1. 在包中创建连接。
  2. 在 SSIS -> Package Configurations 下,选择“Enable package configuration”,选择“Add ..”,选择你想要的格式,选择连接的连接字符串属性,保存配置。
  3. 在其他 3 个包中,转到同一区域,选择“添加..”,这一次浏览到您创建的配置,它会要求您用包中的内容覆盖该配置中的值或重用现有(意思是保留您已经创建的值)- 选择重用现有的。命名,保存。

查看上面的链接以获取更多信息,这就是您想要的。

于 2013-02-27T15:21:14.973 回答