将SQL Server 2008 R2中的数据库备份还原到2008版本

4

我需要在SQL Server 2008R2和SQL Server 2008之间备份和还原数据库。但备份文件不兼容这种方式。我找到的另一个选项是生成包括数据的脚本。由于我的数据库被规范化了,有很多外键,插入操作是否会成功?

还有其他可靠的方法吗?


我已经多次使用了“生成带数据的脚本”选项,它从未让我失望。我认为它会先复制数据,然后再应用约束,这与PostgreSQL的纯文本备份类似。 - sayap
4个回答

5
正如你所指出的:直接恢复是不可能的。SQL Server从未具备向后兼容的能力,也就是说无法将较新版本的数据库还原到较旧版本的服务器上。
你可以使用生成的INSERT语句(直接使用SSMS或方便的插件,例如SSMS Toolpack),或者使用优秀的SQL DIFF工具(例如Red-Gate SQL Data Compare)比较两个数据库(甚至可以从备份文件中进行比较,专业版可用),并从一个更新另一个。

1

SQL Server 不允许降级,您可以在 SQL Server 2008R2 实例中创建数据库备份,并使用第三方工具 ApexSQL Diff 和 ApexSQL Data Diff 将备份还原到旧版本的 SQL Server。

您可以在这篇文章中阅读详细的解释:将 SQL Server 数据库备份还原为旧版本的 SQL Server

希望这有所帮助。

声明:我是 ApexSQL 的支持工程师


0
您可以尝试使用导出数据向导。在SSMS中右键单击数据库,选择任务,然后选择导出数据,复制所有或所需的任何对象。

0

SQL Server 2008 R2 不支持向后兼容性。一个解决方案是让数据库脚本生成并运行所需的服务器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接