64

我知道您不能(至少不容易)在 SQL Server 2008 上恢复 SQL Server 2012 备份。但是它如何从 SQL Server 2014 到 SQL Server 2012 工作?

在数据库级别,有将兼容模式调整为任何其他 SQL Server 版本的属性。

这有什么帮助或工作?它只会禁止 2014 年的功能吗?

老实说,我已经尝试恢复备份,但 2012 无法识别数据文件,因此我无法单击ok Button启动恢复过程。

我错过了一些重要的选择吗?

4

2 回答 2

82

不能这样做 - 您不能将数据库从较新版本的 SQL Server 附加/分离或备份/恢复到较旧版本- 内部文件结构差异太大,无法支持向后兼容性。在 SQL Server 2014 中仍然如此 - 您不能在除另一个 2014 框(或更新的东西)之外的任何东西上恢复 2014 备份。

您可以通过以下方式解决此问题

  • 在所有机器上使用相同版本的 SQL Server - 然后您可以轻松地在实例之间备份/恢复数据库

  • 否则,您可以在 SQL Server Management Studio ( Tasks > Generate Scripts) 中或使用第三方工具为结构(表、视图、存储过程等)和内容(表中包含的实际数据)创建数据库脚本

  • 或者您可以使用 Red-Gate 的SQL 比较SQL 数据比较等第三方工具在源和目标之间进行“差异”,从这些差异生成更新脚本,然后在目标平台上执行这些脚本;这适用于不同的 SQL Server 版本。

兼容模式设置仅控制您可以使用哪些 T-SQL 功能 - 这有助于防止意外使用其他服务器中不可用的新功能。但它不会更改文件的内部文件格式.mdf- 这不是针对特定问题的解决方案 - 没有解决方案可以从较旧实例上的较新版本的 SQL Server 还原备份。

于 2014-07-30T17:25:17.277 回答
32

当然可以...在源选项中使用导出向导使用 SQL SERVER NATIVE CLIENT 11,稍后您的源服务器 ex.192.168.100.65\SQLEXPRESS 下一步选择您的新目标服务器 ex.192.168.100.65\SQL2014

只要确保使用正确的实例并相互连接

请注意必须重新编译存储过程

于 2015-05-28T15:25:02.603 回答