我有100个SSIS包,所有包都是在开发环境中创建的。
我需要更新所有软件包的服务器名称和数据库名称。
手动更新服务器名称和数据库名称会耗费大量时间。
有没有办法可以更新所有包中的数据库和服务器名称?
所有包都存储在同一位置。
答案 0 :(得分:0)
理想情况下,您可以使用一个主程序包来调用我认为正在执行特定任务的100个程序包中的每个程序包。在此主服务包中,您可以将Connection Manager
详细信息传递给每个孩子'在运行时自行打包。这样做的方法是在每个包中创建变量以保存服务器名称和数据库名称,然后在执行开始时更新每个子包中的ConnectionString
属性。这样,您只需要为Master包生成1个配置文件,并且可以根据需要配置数据库连接参数。但是,这将需要额外的开发工作,如下所示:
另一种方法是为100个包中的每一个生成配置文件。然后,每个包都有一个单独的文件,但是您需要在每个配置文件中进行替换。
您可以查看以下链接,了解相关资源:
答案 1 :(得分:0)
您是否已查看"转换为项目连接"?如果你还没有做到这一点,那么你第一次设置它就有点麻烦,但之后你可以在一个地方设置整个项目的连接,并将它们配置为1。只需右键单击连接并选择"转换为项目连接"为第一个连接。然后,该项目连接将变为对项目中所有其他组件的可见性,您可以进行设置。
此外,如果您觉得勇敢和聪明,可以尝试在软件包的xml代码中查找/替换这些设置。如果你不知道你在做什么,这并不容易,也不是一个好主意。如果你确实知道它的全部内容,你可以在10分钟内完成这项工作;)
不要说我没有警告你!
答案 2 :(得分:-1)
使用更新脚本更新internal.object_parameters
表
update [SSISDBName].[internal].[object_parameters]
set design_default_value = ‘NewServername’
where design_default_value in (‘OldServerName1′,’OldServerName2’)
update [SSISDBName].[internal].[object_parameters]
set default_value = ‘NewServername’
where default_value in (‘OldServerName1′,’OldServerName2’)
请在https://moredvikas.wordpress.com/2016/11/17/script-to-update-server-name-in-ssis-package/
上找到更多详情