适用于:SQL Server
Azure 数据工厂中的 SSIS Integration Runtime
当你将旧版 SQL Server 升级到当前版本时,你现有的 SQL Server Integration Services(SSIS)包可能不会自动升级到当前版本使用的包格式。 在这种情况下,你必须选择一种升级方式,并手动升级你的套餐。
重要
当你将SQL Server 2012(11.x)升级到SQL Server 2014(12.x)或更高版本时,确保升级后移除原始的SQL Server 2012(11.x)实例。 如果你订阅了SQL Server 的扩展安全更新,则会对这两个实例都收费。
关于将项目转换为项目部署模型时升级包的信息,请参见 部署集成服务(SSIS)项目与包。
选择升级方法
你可以用各种方法升级旧版SQL Server中的SSIS包。 对于某些方法,升级只是临时的。 而对其他人来说,此次升级是永久性的。 下表描述了每种升级方法以及升级是临时的还是永久的。
注意
当你使用dtexec当前版本SQL Server安装的工具(dtexec.exe)运行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 包升级向导升级集成服务包 和 SSIS 包升级向导的 F1 帮助。 |
包升级是永久的。 |
| 使用 Upgrade 方法对一个或多个 Integration Services 包进行升级。 | 包升级是永久的。 |
自定义应用和自定义组件
SQL Server 2005 集成服务(SSIS)的自定义组件无法与当前版本的 SSIS 兼容。
不过,你可以使用当前版本的SSIS工具来运行和管理从SQL Server 2008(10.0.x)到SQL Server 2014(12.x)的自定义组件包。 为了帮助将运行时装配从版本 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 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))。 有关程序集版本重定向的详细信息,请参阅 <assemblyBinding> 元素(适用于 <runtime>)。
查找程序集
在 SQL Server 2019 (15.x)中, Integration Services 程序集已升级到 .NET 4.0。 .NET 4 另有一个独立的全局程序集缓存,位于 <drive>:\Windows\Microsoft.NET\assembly。 你可以在此路径下找到所有 Integration Services 程序集,通常位于 GAC_MSIL 文件夹中。
与之前版本的 SQL Server 一样,核心的集成服务可扩展.dll文件也位于 <drive>:\Program Files\Microsoft SQL Server\130\SDK\Assemblies。
了解 SQL Server 包升级结果
在软件包升级过程中,2014 SQL Server(12.x)及更早版本的大多数组件和功能会无缝转换为当前版本的 SQL Server。 但是,有一些组件和功能,它们要么无法升级,要么升级的结果值得引起您的注意。
要识别本节列出的问题包,请运行升级顾问。
连接字符串
对于SQL Server 2014(12.x)及更早版本中的包,某些提供者的名称发生了变化,连接字符串中需要不同的值。 若要更新连接字符串,请使用下列过程之一:
- 使用 SSIS 包升级向导升级包,并选择 “更新连接字符串以使用新的提供程序名称” 选项。
- 在 SQL Server Data Tools (SSDT)中,在“选项”对话框的“常规”页上,选择 “更新连接字符串以使用新的提供程序名称” 选项。 有关此选项的详细信息,请参阅“常规页”。
- 在 SQL Server Data Tools (SSDT)中,打开该包并手动更改 ConnectionString 属性的文本。
当连接字符串存储在配置文件或数据源文件中,或者表达式设置了ConnectionString属性时,你无法用这些过程更新连接字符串。 若要在这两种情况下更新连接字符串,必须手动更新文件或表达式。 有关数据源的更多信息,请参见 集成服务包的数据源。
依赖于 ADODB.DLL 的脚本
明确引用ADODB.DLL的脚本任务和脚本组件脚本可能无法升级或在未安装 SQL Server Management Studio 或 SQL Server Data Tools(SSDT)的机器上运行。 要升级这些脚本任务或脚本组件脚本,请移除对 ADODB.DLL的依赖。 使用 ADO.NET 作为托管代码(如 VB 和 C# 脚本)的替代方案。