将备份还原到旧版本的SQL Server


29

尝试将备份还原到SQL Server Express 2008数据库时,出现以下错误:

Restore failed for Server '...\SQLEXPRESS'.  (Microsoft.SqlServer.SmoExtended)
System.Data.SqlClient.SqlError: The database was backed up on a server running version
10.50.1600. 
That version is incompatible with this server, which is running version 10.00.2531. 
Either restore the database on a server that supports the backup, or use a backup 
that is compatible with this server. (Microsoft.SqlServer.Smo)

有没有办法从新版本(在我的情况下为10.50.1600)的SQL Server Express中获取与旧版本(在我的情况下为10.00.2531)兼容的备份?

Answers:


19

您将使用SSMS中的“导入/导出”向导来迁移所有内容

没有 “降级”使用备份可能/还原或分离/附加


8

您可以使用导入/导出向导在数据库之间移动数据。

右键单击要导出的数据库,选择“任务”,然后选择“导出数据”。该向导将指导您完成该过程。

你说的没错。您将无法执行从SQL Server 2008 R2到SQL Server 2008 Express 的备份/还原。


6

唯一的方法是在10.00.2531版本上创建一个新数据库,然后从10.50.1600导入数据。

您无法还原到旧版本。


6

SQL Server备份不支持向后兼容

在旧版本上获取数据库的步骤-

  • 对于模式: 右键单击数据库->任务->生成脚本->下一步->下一步->单击高级按钮->将选项“将数据类型转换为脚本”更改为“模式”- ->确定->下一个->下一个

  • 对于数据: 右键单击数据库->任务->生成脚本->下一步->下一步->单击高级按钮->将选项“将数据类型转换为脚本”更改为“数据”- ->确定->下一个->下一个


这种方法的一个问题是大型数据库(许多表和大量数据)正在运行的脚本还原需要很长时间。但它既方便又容易
Iman

2

右键单击数据库->任务->生成脚本->下一步->下一步->单击高级按钮->将选项“将数据类型转换为脚本”更改为“模式和数据”- > ok-> next-> next,所以现在您有了一个脚本,该脚本创建数据库及其表并在其中填充数据:);)


2
根据数据量,该脚本可能非常庞大……
Thomas Rushton

1
@ThomasRushton根据定义,该脚本将比数据库本身大,如果不是更糟的话,可能至少要大两倍!我希望它不是50 GB的数据库...
ErikE 2013年

这是重复的答案
Burgi

这不是重复的答案,在数据类型为“模式AND数据”的情况下,这是一个很好的答案!;-)这就是我所需要的!
juFo

1
@Burgi这个答案比dsingh的年龄大。他只是复制了Sarah的选项,并添加了2个选项,其中1个用于模式,另一个用于数据。他是副本。
basher
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.