有没有办法以编程方式轻松更改多个SSIS包上的服务器名称?

时间:2010-02-03 22:33:18

标签: sql-server ssis data-migration

我们正在创建多个SSIS包,以便在发布周期中迁移大型数据库。 我们最终可能会有大约5-10个SSIS包。

由于我们有4个环境(开发,QA,登台,生产等),是否有一种有效的方法可以在每个SSIS包经过不同的服务器环境时更改目标服务器?理想情况下,可能会运行一个脚本,该脚本将作为所需服务器的参数。

3 个答案:

答案 0 :(得分:4)

您可以使用配置文件存储服务器的连接字符串。然后,当您从环境移动到环境时,您只需更改配置文件。要简单地在包的控制界面上创建配置文件,请执行 1)右键单击并从上下文菜单中选择Package Configurations 2)如果尚未选择启用包装配置,请选中复选框,
3)然后单击添加...按钮 4)单击对话框上的下一个,
5)然后添加配置文件名:然后单击“下一步” 6)在Objects View中,在Connection Manager下,展开您的连接,然后展开Properties,并选中ConnectionString旁边的框。 7)然后点击下一个
8)然后完成。

您现在有一个名为您在上面的步骤5中命名的xml文件。您可以使用文本编辑器编辑此文件,并在每次运行之前更改连接字符串以映射到您需要的任何服务器。

创建后,只要引用的对象在包之间命名相同,就可以在多个包之间共享配置文件。

这是一个关于配置的基本教程,有很多方法可以保存配置,这只是一个配置。有关配置的更多信息,请参阅您最喜欢的SSIS书

答案 1 :(得分:2)

我们使用配置表来存储服务器的配置。但配置文件也可以正常工作。我们喜欢这个表,因为我们正在报告SSIS包元数据,并且当存储在表中时,更容易获取这些数据(以及我们存储的许多其他数据)。

答案 2 :(得分:1)

William Todd Salzman的回答涵盖了大多数观点。我还有一些要补充的内容:

  • 确保pacakge ProtectionLevel 属性为 DontSaveSensitive
  • 如果您正在使用不同的运输环境,那么SQL Server表作为程序包配置的源可能不适合您,因为您需要一个包含所有服务器的所有连接字符串的中央数据库。
  • 使用从注册表中检索的包配置后,您需要知道从HKEY_CURRENT_USER配置单元中检索这些设置。这会影响程序包通过SQL代理作业运行的时间。