Sql server ssis xml配置-配置覆盖包-ssis是否在您不告诉它的情况下更改配置?
昨天我工作了一整天,试图消除XML配置文件中不正确连接字符串的影响。我检查了每个包,删除了有故障的连接管理器,并用正确的服务器名称重新添加了它。每次执行此操作时,我都会通过删除配置来显式更新配置,然后使用覆盖选项重新添加配置。但后来我犯了一个可怕的错误,拉上了父包,它使用了不同的xml配置,再次将连接管理器更新为错误的服务器名称 我从父包中取出配置,并再次开始修复子包。修复了这些子包之后,我从现在无xml配置的父包调用了其中一个。我真的很震惊和失望地看到,它再次在连接错误的服务器 这怎么会发生 我还通过wordpad++注意到配置文件已更新。我的假设是,当父级配置更新连接管理器时,SSIS会自动更新现在已更正的配置文件,并再次将其破坏Sql server ssis xml配置-配置覆盖包-ssis是否在您不告诉它的情况下更改配置?,sql-server,ssis,Sql Server,Ssis,昨天我工作了一整天,试图消除XML配置文件中不正确连接字符串的影响。我检查了每个包,删除了有故障的连接管理器,并用正确的服务器名称重新添加了它。每次执行此操作时,我都会通过删除配置来显式更新配置,然后使用覆盖选项重新添加配置。但后来我犯了一个可怕的错误,拉上了父包,它使用了不同的xml配置,再次将连接管理器更新为错误的服务器名称 我从父包中取出配置,并再次开始修复子包。修复了这些子包之后,我从现在无xml配置的父包调用了其中一个。我真的很震惊和失望地看到,它再次在连接错误的服务器 这怎么会发生
SSI是否真的在其组件更改时自动更新配置文件?真的是这样吗?如果是这样的话,那就是完全令人困惑的行为——比如乒乓球,或者把手指伸进堤坝。我准备好建议我们永远不要使用XML配置 更新:我错了。见下面我的评论 因此,我认为您对SSI中的配置如何工作有一个(可能有两个)基本误解 使连接管理器可配置的标准过程是:
无论如何,我会(正如您可能猜到的那样)完全推荐使用XML配置,因为它们是(或者我认为是!)非常简单的,而且在我看来,这是多层SSIS环境最简单的部署选项。需要澄清的是:XML配置不会“更新”包中的连接管理器。曾经在运行时,如果您选择使用配置,它将用自己配置的值替换包中的默认值。您可以做一件事:在XML配置文件本身的顶部有一行,指示哪个包生成了该特定文件以及生成该文件的时间。如果我在Visual Studio中有一个包,如果我在XML配置中修改connectionstring中的servername(将服务器A更改为服务器B),并运行包,那么我期望的行为是正常的,它会将数据写入第二台服务器上的表中。我不期望的行为是这样的。当我在visual studio包中启动连接管理器时,服务器A已更改为服务器B SSIS已修改了我包中的代码。在我看来,它应该只在运行时覆盖值,而不是在设计时覆盖包!!所以如果您使用的是直接连接管理器连接而不是数据源,那么看起来您是对的。当我使用一个数据源并在配置中修改该值时,我会收到一条警告,指出该数据源未同步,然后“重置”该数据源