我创建了一个SSIS包。我想在我的本地使用Variables进行开发。但是,当我将此包移至QA时,我想使用XML包配置文件( .dtsConfig ),以便它将使用特定于环境的值。我通过将 .dtsConfig文件路径保留在环境变量&中来使用间接配置文件我也开启"启用套餐配置" 。
我生成了.dtsConfig文件,对其进行了必要的更改(针对特定于环境的值)。复制.dtsx& .dtsConfig文件到不同的服务器。在服务器上创建环境变量,其值为.dtsConfig文件的路径。从SQL作业调用SSIS包。
但是,在服务器上,它使用的是Variables值,而不是.dtsConfig文件中的值。在本地,它使用.dtsConfig文件中的值。我想要完全相反的行为。
我在这里缺少什么?这种行为还有其他一些属性吗?
注意:在"配置"中添加.dtsconfig文件路径SQL作业的选项卡,使用包配置文件中的值。但是我想利用.dtsConfig文件路径的环境变量
答案 0 :(得分:1)
当进程启动时,环境变量会被缓存,因此在重新启动进程之前,添加新变量是不可见的,无论是BIDS还是SQL Agent或其他东西。 [来自互联网上的来源]
重新启动SQL Server后,它开始使用间接包配置(.dtsConfig)文件。但是,重启所有环境的DB服务器并不是一个可行的解决方案。所以我更喜欢使用SQL Job配置。即在作业配置中添加.dtsConfig文件路径。
在开发过程中,我必须在创建环境变量后重新启动Visual Studio。为了确认这种行为,我遵循了以下步骤:
因此,如果我们使用环境变量,则应在任何更改后重新启动Consuming程序。