Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 有没有一种方法可以通过编程轻松更改多个SSIS包上的服务器名称?_Sql Server_Ssis_Data Migration - Fatal编程技术网

Sql server 有没有一种方法可以通过编程轻松更改多个SSIS包上的服务器名称?

Sql server 有没有一种方法可以通过编程轻松更改多个SSIS包上的服务器名称?,sql-server,ssis,data-migration,Sql Server,Ssis,Data Migration,我们正在创建几个SSIS包,以作为发布周期的一部分迁移大型数据库。 我们最终可能会得到大约5-10个SSI包 由于我们有4个环境(开发、QA、登台、生产等),是否有一种有效的方法可以在每个SSIS包经过不同的服务器环境时更改其目标服务器?理想情况下,运行的脚本可以将所需的服务器作为参数。您可以使用配置文件来存储服务器的连接字符串。然后,当您从一个环境移动到另一个环境时,只需更改配置文件。要简单地创建配置文件,请在包的控制面上, 1) 右键单击并从关联菜单中选择“软件包配置”。 2) 如果尚未选中

我们正在创建几个SSIS包,以作为发布周期的一部分迁移大型数据库。 我们最终可能会得到大约5-10个SSI包


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

您可以使用配置文件来存储服务器的连接字符串。然后,当您从一个环境移动到另一个环境时,只需更改配置文件。要简单地创建配置文件,请在包的控制面上,
1) 右键单击并从关联菜单中选择“软件包配置”。
2) 如果尚未选中启用程序包配置复选框,
3) 然后单击添加。。。按钮。
4) 单击对话框上的下一步,
5) 然后添加配置文件名:并单击下一步。
6) 在“对象”视图的“连接管理器”下,展开连接,然后展开属性并选中ConnectionString旁边的框。
7) 然后单击下一步
8) 然后结束

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

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


这是一个关于配置的基本教程,有许多保存配置的方法,这只是其中之一。有关配置的更多信息,请参阅您最喜爱的SSIS书籍

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

威廉·托德·萨尔兹曼的答案涵盖了大部分要点。我还有几点要补充:

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

包如何在包执行时检索配置表信息?在包执行的预执行时,ssis从用于存储配置信息的任何方法加载配置信息。存储配置信息的任何方法都是如此。如果使用此处描述的表方法,则可以在运行之间使用sql更新表,以便从一个环境移动到下一个环境。如果在另一个答案中使用xml方法,则可以在两次运行之间替换或编辑文件。它指向存储配置的数据库。HLGEM-是的,这是我最喜欢的配置方法,我听说称之为“间接配置”。为了简化这个特定的问题,我推荐使用xml配置,但是使用SqlServer配置间接地使用包含配置连接字符串的环境变量也可以。如果您的环境位于不同的网络上,那么间接方式可以很好地工作,但是您必须在ssis服务器上维护环境变量(这是为灵活性付出的一个小代价)。可以通过多种不同的方式来完成:手动、自动、通过配置文件,甚至通过编程。然而,这些都不能公平地说是“容易的”,特别是如果你还没有准备好使用它们,当然也不是在你第一次尝试这样做的时候。在所有这些不同的方法中,“以编程方式”可能是最困难的。SSI中的任何配置存储方法都会经历与上述类似的过程,只是每个步骤所做的选择都不同。您的选择包括XML(此处描述)、环境变量、注册表项、父包变量或Sql Server。在Sql Server中,需要为表定义连接。