我尝试将数据库从本地计算机 v15 (2019) 上的 Sql Server 克隆到服务器计算机 v14(2017)。我做了一个 .bak 文件,当我尝试在服务器端导入时,它显示:
System.Data.SqlClient.SqlError:数据库已在运行版本 15.00.4083 的服务器上备份。该版本与运行版本 14.00.2037 的服务器不兼容。在支持备份的服务器上还原数据库,或使用与该服务器兼容的备份。(Microsoft.SqlServer.SmoExtended)
14-15 Sql Server 版本是否有“兼容”备份模式?
本地(在 docker、Linux 上):
Microsoft SQL Server 2019 (RTM-CU8-GDR) (KB4583459) - 15.0.4083.2 (X64) 2020 年 11 月 2 日 18:35:09 版权所有 (C) 2019 Microsoft Corporation Developer Edition(64 位)Linux (Ubuntu 18.04.5)长期支持)
远程(在 Windows Server 上)
Microsoft SQL Server 2017 (RTM-GDR) (KB4583456) - 14.0.2037.2 (X64)
2020 年 11 月 2 日 19:19:59 版权所有 (C) 2017 Microsoft Corporation 标准版(64 位),位于 Windows Server 2019 Standard 10.0(内部版本 …
这个问题可能已经被问过十几次了,但我在这里或 SO 都找不到。
我可以将 SQL Server 2008 R2 数据库附加/恢复到我的本地 SQL 2008 R2 Express 实例吗?
我有一个 SQL Server 2014 数据库(在便携式硬盘上),我必须使用正常的附加方法将它附加到 SQL Server 2016 机器上。
但是,由于将它附加到该计算机,即使我没有更改兼容性级别或其他任何内容,它也不再适用于 SQL Server 2014 计算机。
我现在卡住了,因为 SQL Server 2016 无法在所有其他计算机上运行的 Windows 7 机器上运行。我只是碰巧将它附加在运行 Windows 10 和 SQL 2016 的笔记本电脑上,认为这不会有问题。
有什么办法可以扭转这种局面吗?我无法从管理工作室的错误屏幕中获得任何好的信息。
我无法将备份从 64 位实例恢复到 32 位实例。
源服务器:
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64)
Run Code Online (Sandbox Code Playgroud)
目标服务器:
Microsoft SQL Server 2008 (SP2) - 10.0.4064.0 (Intel X86)
Run Code Online (Sandbox Code Playgroud)
恢复时出错:
服务器“servername”
的还原失败数据库已备份在运行版本 10.50.2500 的服务器上。该版本与运行版本 10.00.4064 的服务器不兼容。在支持备份的服务器上还原数据库,或者使用与此服务器兼容的备份。
在 SQL 2019 上,我尝试将兼容性级别更改为 2008(以确保我能够附加到旧版本,至少我希望这是可能的)。
我分离了这个数据库。
到目前为止,我发现了一些相关主题如下: 将数据库还原到旧版本
但是有关于恢复备份的讨论,但我问的是分离/附加和兼容性级别。
所以这是我的问题:
问题 1:有没有办法在旧的 SQL 服务器上附加最新的 mdb 文件?
如果不
问题 2:什么是功能“兼容级别”?
阅读以下两个ansers后,我有:
问题 3:您认为使用dbeaver或devart等工具可以在 NEW<>OLD SQL 版本之间导出/导入数据,或者您是否会建议其他工具来完成此类工作?