通过数据库默认方式 还原数据库时出现类似下面截图中的错误

 

此时需要通过脚本的方式进行还原操作:

1、首先,将目标数据库属性中的“限制访问”设置“SINGLE_USER”(独占);

2、然后,新建查询,选择“master”数据库;

3、其次,根据实际情况对下面的代码进行修改,然后执行;

RESTORE DATABASE xxxx     -- xxxx-改为你自己的数据名称
FROM DISK = 'D:\db\xxxx.bak'   --bak文件路径 xxxx-改为你自己的数据名称
with replace,
MOVE 'xxxx' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\xxxx.mdf',   --mdf文件路径--xxxx-改为你自己的数据名称
MOVE 'xxxx_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\xxxx.ldf'   --ldf文件路径xxxx-改为你自己的数据名称

 4、相关参数修改后执行时若报下面的错

        请使用如下语句查询备份文件的原始逻辑文件名称:

--获得数据库备份文件的信息 
restore filelistonly from disk='E:\backup\XXX.bak'

  

         用框框中的逻辑文件名称替换MOVE后面的两个文件名,然后再执行还原脚本;

5、脚本执行成功后,此时只有部分的表结构已经还原,而且表中没有数据,这时就可以用系统默认的方法再用xxxx.bak文件还原一次数据库就大功告成了,必须要选中覆盖还原。

注意:

若出现上述报错,则说明步骤1中未设置正确,选中待还原数据库,右单击,选择属性,然后按下面截图设置成独占模式即可(数据库还原成功后会自动切换会多用户模式)

更多推荐

SQL Server 2008还原数据库时出现“备份集中的数据库备份与现有的数据库不同”的解决方法