可以在SQL Server 2012上恢复SQL Server 2014的备份吗?

Ray*_*and 60 sql sql-server compatibility sql-server-2012 sql-server-2014

我知道你不能(至少不容易)在SQL Server 2008上恢复SQL Server 2012备份.但它如何适用于SQL Server 2014到SQL Server 2012?

在数据库级别,可以将兼容性模式调整为任何其他SQL Server版本.

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

说实话,我已经尝试恢复备份,但2012年没有识别数据文件,所以我无法点击ok Button启动恢复过程.

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

mar*_*c_s 77

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

你可以解决这个问题

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

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

  • 或者您可以使用Red-Gate的SQL CompareSQL Data Compare等第三方工具在源和目标之间进行"区分",从这些差异生成更新脚本,然后在目标平台上执行这些脚本; 这适用于不同的SQL Server版本.

兼容模式设置只是控制什么T-SQL的功能是提供给你-它可以帮助防止意外使用在其他的服务器不可用的新功能.但它确实改变内部文件格式的.mdf文件-这是针对特定问题的解决方案-有来自SQL Server的新版本在旧的实例恢复备份无解.

  • 假设2016年与2014年相同,是否安全?我的意思是2016备份不兼容2014服务器上的恢复,而2016服务器可以从2014服务器恢复备份. (3认同)

小智 31

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

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

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

  • 技术上不是"恢复备份",但它确实实现了将数据从服务器[新]移动到服务器[旧]的目标. (10认同)
  • 开发环境的"解决方法"很好.我想将数据库从2016年迁移到2014年,并且不希望升级其他实例或花费太多时间迁移数据.这个技巧很完美. (2认同)
  • 要找到向导,请在SSMS中单击“数据库”,选择“任务”,然后选择“导出数据”。 (2认同)
  • 稍微扩展一下...当我刚刚使用导出数据时,我丢失了所有索引、约束等。我很幸运地为 2014 数据库中的所有对象生成了脚本,然后在 2012 服务器上运行这些脚本。然后我禁用了所有约束,并运行 export data 将所有数据复制到新的 db shell。请记住从导出数据向导中的选项启用身份插入。还记得在之后启用约束。 (2认同)