SSIS连接管理器

时间:2018-09-20 13:18:42

标签: ssis-2012

我用相同的连接管理器名称创建了两个项目。尽管名称相同,但它们指向两个不同的环境。 我以为,如果我将一个项目中的软件包添加到另一个项目中,则不会遇到与连接管理器相关的问题。 但是我仍然收到未找到连接管理器“”的错误。 这是否意味着即使我具有相同的连接管理器名称,我仍然需要打开每个DFT并手动更改连接管理器?

关于, K

1 个答案:

答案 0 :(得分:0)

我想了解这里的要求。

项目1

  • 我们将项目级别的连接称为“ TestConnection”
  • 我们称为“ TestPackage1”的SSIS包正在使用项目级连接“ TestConnection”

项目2

  • 同样,我们将项目级别的连接称为“ TestConnection”
  • 我们称为“ TestPackage2”的SSIS包正在使用项目级连接“ TestConnection”

将“ TestPackage1”从项目1移动到项目2,现在所有数据流,执行sql任务都在抱怨缺少连接管理器。

您问:

  

这是否意味着即使我具有相同的连接管理器名称,我   仍然需要打开每个DFT并更改连接管理器   手动?

答案很简单...是

了解到SSIS在幕后将每个对象,数据流,执行sql任务,源,目标,连接管理器分配了唯一的GUID。在创建对象的项目/解决方案中互相引用时,每个对象都使用该唯一的GUID。

因此,即使将包从一个项目移动到另一个项目,并且连接管理器的名称相同,该连接管理器在项目之间也不会具有相同的GUID。

在查看连接管理器的代码并查看程序包的代码时,您会看到

在Visual Studio中:

  • 打开包,然后从工具栏中单击查看->代码
  • 然后右键单击解决方案资源管理器中的连接管理器,然后单击查看代码。

这将为您提供XML代码的视图。如果我在程序包代码中向下滚动到数据流之一,您将看到connectionManageID引用了连接管理器的GUID: enter image description here

您可以,而且我过去在处理大型程序包时,可以从已将程序包复制到的项目中识别GUID,并确定程序包所引用的GUID,然后查找并替换代码。保存,关闭所有然后重新打开。我对此很谨慎 如果操作不正确,请轻松将其完全破坏。这将完全由您自己承担风险,我将确保您在尝试任何操作之前都已拥有所有内容的备份副本。

如果您的程序包不大,只需手动更新每个任务即可。