如何将高版本SQL Server数据库备份文件恢复到低版本SQL Server?

使用SQL Server 2008 R2(10.50.1600),我做了一个备份文件,现在我想在我的live服务器的SQL Server 2008(10.00.1600)上恢复它。

当我试图将备份恢复到SQL Server 2008上时,它给出了一个错误,即恢复失败,因为:

数据库备份在运行版本为10.50.1600的服务器上。 该版本与正在运行的服务器不兼容 10.00.1600.

如何恢复该服务器上的备份文件?


当前回答

你可以试试这个。

在SQL Server 2008上创建数据库。 使用Import Data特性从SQL Server R2(或更高版本)导入数据。 使用“RedGate SQLCompare”同步脚本。

其他回答

不,不能降级数据库。其中“10.50.1600”为SQL Server 2008 R2版本。您绝对无法恢复或将此数据库附加到您试图恢复的SQL Server 2008实例(10.00.1600是SQL Server 2008)。你唯一的选择是:

将此实例升级到SQL Server 2008 R2或 恢复您在SQL Server 2008 R2实例上的备份,导出所有数据并导入SQL Server 2008数据库。

您可以从任务菜单生成脚本

详细参考

如何迁移SQL Server数据库到低版本

你可以试试这个。

在SQL Server 2008上创建数据库。 使用Import Data特性从SQL Server R2(或更高版本)导入数据。 使用“RedGate SQLCompare”同步脚本。

您可以使用名为Export data - tier Application的功能,它可以生成包含数据库模式和数据的.bacpac文件。

在目标服务器上,您可以使用Import Data-Tier Application选项,该选项可以从预先创建的.bacpac文件创建并填充新数据库

如果只想传输数据库模式,可以使用Extract Data-Tier Application创建文件,使用Deploy Data-Tier Application部署创建的数据库模式。

我在不同版本的SQL Server上尝试了这个过程,从SQL 2014到SQL 2012,从SQL 2014到SQL 2008R2,效果很好。

我知道这是一篇老文章,但它可能对人们有用,让他们知道Azure迁移向导(在Codeplex上可用-不能链接到Codeplex,因为我正在输入这篇文章)可以很容易地做到这一点。