升级 Integration Services 包

适用于:SQL Server Azure 数据工厂中的 SSIS Integration Runtime

在将 SQL Server 2008 (10.0.x) 实例升级到 SQL Server 的当前版本时,现有的 SQL Server 2008 Integration Services (SSIS) 包不会自动升级到当前版本的 SQL Server Integration Services 所使用的包格式。 您必须选择一种升级方法并手动升级包。

有关在将项目转换为项目部署模型时升级包的信息,请参阅部署 Integration Services (SSIS) 项目和包

选择升级方法

可以使用各种方法来升级 SQL Server 2008 (10.0.x)、SQL Server 2008 R2 (10.50.x)、SQL Server 2012 (11.x)或 SQL Server 2014 (12.x) 包。 对于某些方法,升级只是临时的。 对于其他方法,升级将是永久的。 下表描述了每种升级方法以及升级是临时的还是永久的。

注意

当你使用随当前版本的 SQL Server 一起安装的 dtexec 实用工具 (dtexec.exe) 运行 SQL Server 2008 (10.0.x)、SQL Server 2008 R2 (10.50.x)、SQL Server 2012 (11.x) 或 SQL Server 2014 (12.x) 包时,临时包升级将增加执行时间。 包执行时间的增加比率将由包的大小决定。 为了避免增加执行时间,建议您在运行包之前对包进行升级。

注意

对于引用与版本绑定的 SSIS 相关程序集的脚本组件,升级过程不会处理这些组件,而是将其保持不变。 需要手动更新对新版本的引用。

升级方法 升级类型
当你使用随当前版本的 SQL Server 一起安装的 dtexec 实用工具 (dtexec.exe) 运行 SQL Server 2008 (10.0.x)、SQL Server 2008 R2 (10.50.x)、SQL Server 2012 (11.x) 或 SQL Server 2014 (12.x) 包。

有关详细信息,请参阅 dtexec Utility
包升级是临时的。

无法保存所做的更改。
在 SQL Server Data Tools (SSDT) 中打开 SQL Server 2008 (10.0.x)、SQL Server 2008 R2 (10.50.x)、SQL Server 2012 (11.x) 或 SQL Server 2014 (12.x) 包文件。 如果保存该包,则包升级是永久的;否则,如果不保存该包,则包升级是临时的。
将 SQL Server 2008 (10.0.x)、SQL Server 2008 R2 (10.50.x)、SQL Server 2012 (11.x) 或 SQL Server 2014 (12.x) 包添加到 SQL Server Data Tools (SSDT) 的现有项目中。 包升级是永久的。
在 SQL Server 2008 Integration Services (SSIS) 中打开 Visual Studio或更高版本的项目文件,然后使用 SSIS 包升级向导升级项目中的多个包。

有关详细信息,请参阅 使用 SSIS 包升级向导升级 Integration Services 包SSIS 包升级向导的 F1 帮助
包升级是永久的。
使用随当前版本的 Upgrade 方法升级一个或多个 Integration Services 包。 包升级是永久的。

自定义应用程序和自定义组件

SQL Server 2005 Integration Services (SSIS) 自定义组件将不与 SQL Server Integration Services 的当前版本一起使用。

可以使用当前版本的 SQL Server Integration Services 工具运行和管理包含 SQL Server 2008 (10.0.x)、SQL Server 2008 R2 (10.50.x)、SQL Server 2012 (11.x) 或 SQL Server 2014 (12.x)SSIS 自定义组件的包。 我们向以下文件添加了四个绑定重定向规则,以帮助将运行时程序集从版本 10.0.0.0 (SQL Server 2008 R2 (10.50.x))、版本 11.0.0.0 (SQL Server 2012 (11.x)) 或版本 12.0.0.0 (SQL Server 2014 (12.x)) 重定向到版本 15.0.0.0 (SQL Server 2019 (15.x))。

  • DTExec.exe.config

  • dtshost.exe.config

  • DTSWizard.exe.config

  • DTUtil.exe.config

  • DTExecUI.exe.config

若要使用 SQL Server Data Tools 设计包含 SQL Server 2008 (10.0.x)、SQL Server 2008 R2 (10.50.x)、SQL Server 2012 (11.x) 或 SQL Server 2014 (12.x) 自定义组件的包,需要修改位于 <drive>:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE 的 devenv.exe.config 文件。

若要将这些包用于使用 SQL Server 2019 (15.x)的运行时生成的客户应用程序,则在可执行文件的 *.exe.config 文件的配置部分中包含重定向规则。 这些规则将运行时程序集重定向到版本 15.0.0.0 (SQL Server 2019 (15.x))。 有关程序集版本重定向的详细信息,请参阅 <runtime> 的 <assemblyBinding> 元素

定位程序集

在 SQL Server 2019 (15.x)中, Integration Services 程序集已升级到 .NET 4.0。 .NET 4 中有一个单独的全局程序集缓存,该缓存位于 <drive>:\Windows\Microsoft.NET\assembly。 您可在此路径下找到所有 Integration Services 程序集,一般位于 GAC_MSIL 文件夹中。

与之前版本的 SQL Server 一样,核心 Integration Services 扩展性 .dll 文件也位于 <drive>:\Program Files\Microsoft SQL Server\130\SDK\Assemblies 中。

了解 SQL Server 包升级结果

在包升级过程中,SQL Server 2008 (10.0.x)、SQL Server 2008 R2 (10.50.x)、SQL Server 2012 (11.x) 或 SQL Server 2014 (12.x) 包中的大部分组件和功能都无缝地转换为其在当前版本的 SQL Server中的对应部分。 但是,有一些组件和功能,它们要么无法升级,要么升级的结果值得引起您的注意。 下表确定了这些组件和功能。

注意

若要确定哪些包具有该表中列出的问题,请运行升级顾问。

组件或功能 升级结果
连接字符串 对于 SQL Server 2008 (10.0.x)、SQL Server 2008 R2 (10.50.x)、SQL Server 2012 (11.x) 或 SQL Server 2014 (12.x) 包,某些提供程序的名称已更改,而且需要在连接字符串中使用不同的值。 若要更新连接字符串,请使用下列过程之一:

使用 SSIS 包升级向导升级包,并选择 “更新连接字符串以使用新的提供程序名称” 选项。

在 SQL Server Data Tools (SSDT)中,在“选项”对话框的“常规”页上,选择 “更新连接字符串以使用新的提供程序名称” 选项。 有关此选项的详细信息,请参阅“常规页”。

在 SQL Server Data Tools (SSDT)中,打开该包并手动更改 ConnectionString 属性的文本。

注意:在连接字符串存储于配置文件或数据源文件中,或表达式设置了 ConnectionString 属性时,不能使用上述过程更新连接字符串。 若要在这两种情况下更新连接字符串,必须手动更新文件或表达式。

有关数据源的详细信息,请参阅 数据源

依赖于 ADODB.dll 的脚本

在未安装 SQL Server Management Studio 或 SQL Server Data Tools (SSDT) 的计算机上,可能不能升级或运行显式引用 ADODB.dll 的“脚本任务”和“脚本组件”脚本。 为了升级这些“脚本任务”或“脚本组件”脚本,建议你删除对 ADODB.dll 的依赖关系。 Ado.Net 是建议用于托管代码(如 VB 和 C# 脚本)的替代项。