You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2019开发的SSIS包迁移至SQL Server 2022遇版本错误求助

解决SSIS包dtexec运行报错0xC001700A的问题

核心原因

报错本质是调用的dtexec版本与SSIS包的版本标识不匹配:新服务器同时存在VS2019关联的SQL Server 2019版dtexec,以及SQL Server 2022自带的dtexec,若bat文件默认调用了旧版dtexec,会因无法适配SQL Server 2022的环境逻辑触发版本校验错误。

可行解决方案

1. 指定调用SQL Server 2022版本的dtexec

SQL Server 2022的dtexec完全兼容运行SQL Server 2019开发的SSIS包,只需在bat文件中写入完整路径调用该版本:

  • 64位版本路径:C:\Program Files\Microsoft SQL Server\160\DTS\Binn\dtexec.exe
  • 32位版本路径(若包依赖32位组件):C:\Program Files (x86)\Microsoft SQL Server\160\DTS\Binn\dtexec.exe

示例bat命令:

"C:\Program Files\Microsoft SQL Server\160\DTS\Binn\dtexec.exe" /f "C:\YourSSISProject\YourPackage.dtsx" /conf "C:\YourConfig\ConfigFile.dtsConfig"

2. 手动修改包的版本标识(无需VS2022)

若调用SQL2022版dtexec仍报错,可直接修改包文件的版本属性:

  • 用文本编辑器(如Notepad++)打开.dtsx包文件
  • 找到<DTS:Package>标签下的DTS:VersionMajor、DTS:VersionMinor、DTS:VersionBuild属性,修改为SQL Server 2022对应值:
    • DTS:VersionMajor="16"
    • DTS:VersionMinor="0"
    • DTS:VersionBuild="0"
  • 保存文件后重新用SQL2022版dtexec运行

注意:修改前务必备份原包文件,避免损坏。

3. 部署到SSIS目录执行

将项目部署到SQL Server 2022的SSISDB目录,通过目录执行可规避版本校验问题:

  • 在VS2019中保持TargetServerVersion为SQL Server 2019,直接部署到新服务器的SQL2022实例(SQL2022兼容接收2019版本的部署包)
  • 部署完成后,用以下命令调用dtexec运行目录中的包:
"C:\Program Files\Microsoft SQL Server\160\DTS\Binn\dtexec.exe" /ISSERVER "\SSISDB\YourFolder\YourProject\YourPackage" /SERVER "YourSQL2022Instance"

验证要点

  • 执行dtexec.exe /?查看版本信息,确认调用的是16.x开头的SQL Server 2022版本
  • 若包依赖第三方组件,确保新服务器已安装对应版本的组件(32/64位需与dtexec版本匹配)

内容的提问来源于stack exchange,提问作者sydney

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 10:37:40