【问题标题】:Package migration from version 8 to version 6 failed with error 0xC001700A从版本 8 到版本 6 的包迁移失败,错误为 0xC001700A
【发布时间】:2020-06-10 16:07:14
【问题描述】:
VS 2013 (v 12.0.31101) 中内置的 SSIS 包
DTSExec 在 SQL Server 2014 上运行
描述:从版本 8 到版本 6 的包迁移失败
错误 0xC001700A “包中的版本号无效。
版本号不能大于当前版本号。”。
当人们使用 SQL 2012 时,我看到很多谷歌结果,但我在 2014 年,找不到任何支持。版本应该匹配(即都是包版本 8)
select @@version
Microsoft SQL Server 2014 (RTM-CU14) (KB3158271) - 12.0.2569.0 (X64)
2016 年 5 月 27 日 15:06:08 版权所有 (c) Microsoft Corporation
Windows NT 6.3(内部版本 9600:)上的企业版(64 位)
附加信息 - 看起来它正在运行较旧的 DTSExec,可能来自现已删除的 sql 2012 实例。我将如何修复/重新指向 2014?
Microsoft (R) SQL Server 执行包实用程序版本 11.0.2100.60
64 位版权所有 (C) Microsoft Corporation。保留所有权利。
【问题讨论】:
标签:
sql-server
ssis
sql-server-2014
【解决方案1】:
发现我可以强制它使用正确的 dtexec,如下所示:
转到 PATH 环境变量并以如下方式编辑它
"C:\Program Files\Microsoft SQL Server\110\DTS\Binn" 路径看起来不错
在“C:\Program Files\Microsoft SQL Server\100\DTS\Binn”路径之前。
随后重新启动 SQL Server 服务。现在它显示正确的版本:
Microsoft (R) SQL Server 执行包实用程序版本 12.0.2569.0
64 位版权所有 (C) Microsoft Corporation。保留所有权利。
【解决方案2】:
使用正确的部署向导有助于解决问题。
- 使用正确的目标 sql 版本。
- 如果您的服务器是 32 位的,请确保将“Run64Bitruntime”属性设置为 False。
- 如果您直接从解决方案部署向导进行部署,应该没有问题。
- 构建和重新构建解决方案并进行部署。
- 如果您将 .ispac 发送给将要部署的人,那么可能会出现问题。
- 确保在部署 ispac 时使用正确版本的部署向导,因为它会自动转换包版本值。
从 SSISDB.internal.packages 中选择 *
-> 对于 Sql server 版本 2012 packageformatversion 为 6
-> 对于 Sql server 2014 及以上版本,packageformatversion 为 8