Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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 什么会导致SSI忽略包配置连接?_Sql_Sql Server_Ssis - Fatal编程技术网

Sql 什么会导致SSI忽略包配置连接?

Sql 什么会导致SSI忽略包配置连接?,sql,sql-server,ssis,Sql,Sql Server,Ssis,我有一个非常简单的SSIS包,在ConnectionManager部分中定义了2个连接。MS Access数据源和MS SQL数据源目标。这个包所做的只是截断SQL目标中的一个表,并将数据从MS Access导入SQL表。这在VS2013的开发过程中如预期的那样起作用 现在,我还为包启用了包配置,并且在C:驱动器根目录的文件夹中有两个XML配置文件(每个连接1个)。配置文件连接因其所在的服务器而异,但两台服务器上都存在文件夹结构,因此包可以在运行包的服务器上执行 我选中了该复选框以启用包配置并将

我有一个非常简单的SSIS包,在ConnectionManager部分中定义了2个连接。MS Access数据源和MS SQL数据源目标。这个包所做的只是截断SQL目标中的一个表,并将数据从MS Access导入SQL表。这在VS2013的开发过程中如预期的那样起作用

现在,我还为包启用了包配置,并且在C:驱动器根目录的文件夹中有两个XML配置文件(每个连接1个)。配置文件连接因其所在的服务器而异,但两台服务器上都存在文件夹结构,因此包可以在运行包的服务器上执行

我选中了该复选框以启用包配置并将包部署到两个不同的服务器。一个用于开发,另一个用于QA。当我在开发服务器上通过SSMS集成包执行来执行包时,包利用了开发表。但是,当我在QA环境中执行相同的包时,它也利用了开发表

由于开发连接是通过连接管理器嵌入到包中的连接,因此包似乎(可能无论如何)正在使用嵌入的连接而忽略配置文件

或者,我在Configurations部分的executepackage实用程序中显式地添加了配置文件的路径,以查看它是否有任何不同,但结果是相同的。配置文件未被确认。因此,包似乎再次使用配置管理器中定义的嵌入式连接

我想我“可能”能够在连接管理器部分中从包中删除连接,并在设计时关闭验证,然后再次部署,以迫使包使用配置文件,但这似乎不是一种可行的方法,充其量也不是一种黑客行为;只要它能起作用

我并不认为这会有所不同,但为了提供更多细节,这里有一点关于我的服务器配置:

开发-SQL 2014[ServerName] 质量保证-SQL 2014[ServerName][InstanceName]


我不记得以前有过这个问题,因此我发布的原因。

好的,因为我的工作是在一条死线上进行的;我希望尽快得到答案。但事实并非如此,而且因为我以前看到过这个问题的各种变化,但没有一个明确的答案(至少是为了满足这个场景),所以我进行了一些测试,并将此发布给其他可能也需要此信息的人

以下条件将忽略配置文件的使用,即使SSIS包中启用了包配置。这些发现基于实际测试,并被确认为适用于SQL 2014,尽管之前的版本也可能适用

免责声明:这些测试主要针对与实际服务器连接相关的配置文件。(例如连接字符串)而不是任何其他变量,尽管可以想象配置文件中的任何其他值也会受到影响

  • 连接到集成服务组件并选择运行包时,从SSMS内执行包。注意到的行为是,在部署到服务器之前获取的任何连接值都将被使用;不考虑配置文件

    注意:即使在执行之前在“配置”部分中添加了配置,这也适用。尽管提到配置未导入且无法编辑;事实上,它们在测试期间都没有使用

  • 如果SQL作业的类型为SQL Server Integration Services Package,并且没有将任何配置文件引用实际添加到“配置”选项卡中,则该作业将在部署前BIDS中上次生成期间使用的任何值下执行(嵌入值)

  • 如果包使用了多个配置文件,但在作业的“配置”选项卡中省略了一些配置文件;作业将使用指定的配置文件,但对于作业上下文中不存在的配置文件,将默认为开发中使用的最后一个值(嵌入值)

  • 其中一些行为不是很明显,我想如果有人希望遵循大多数在线教程的规则来使用软件包配置文件,这可能会是一个令人沮丧的难题;会有更直接的预期结果

    我知道这是一项耗时的测试任务,以确定我的根本原因,虽然我不是专家;我当然不是SSIS的新手


    无论如何,我希望这对其他人的工作和调查有所帮助。

    我的第一个猜测是,您在设置配置使用时犯了一些错误,只是还没有发现而已。