我用相同的连接管理器名称创建了两个项目。尽管名称相同,但它们指向两个不同的环境。 我以为,如果我将一个项目中的软件包添加到另一个项目中,则不会遇到与连接管理器相关的问题。 但是我仍然收到未找到连接管理器“”的错误。 这是否意味着即使我具有相同的连接管理器名称,我仍然需要打开每个DFT并手动更改连接管理器?
关于, K
答案 0 :(得分:0)
我想了解这里的要求。
项目1
项目2
将“ TestPackage1”从项目1移动到项目2,现在所有数据流,执行sql任务都在抱怨缺少连接管理器。
您问:
这是否意味着即使我具有相同的连接管理器名称,我 仍然需要打开每个DFT并更改连接管理器 手动?
答案很简单...是
了解到SSIS在幕后将每个对象,数据流,执行sql任务,源,目标,连接管理器分配了唯一的GUID。在创建对象的项目/解决方案中互相引用时,每个对象都使用该唯一的GUID。
因此,即使将包从一个项目移动到另一个项目,并且连接管理器的名称相同,该连接管理器在项目之间也不会具有相同的GUID。
在查看连接管理器的代码并查看程序包的代码时,您会看到
。在Visual Studio中:
这将为您提供XML代码的视图。如果我在程序包代码中向下滚动到数据流之一,您将看到connectionManageID引用了连接管理器的GUID:
您可以,而且我过去在处理大型程序包时,可以从已将程序包复制到的项目中识别GUID,并确定程序包所引用的GUID,然后查找并替换代码。保存,关闭所有然后重新打开。我对此很谨慎 如果操作不正确,请轻松将其完全破坏。这将完全由您自己承担风险,我将确保您在尝试任何操作之前都已拥有所有内容的备份副本。
如果您的程序包不大,只需手动更新每个任务即可。