sql2008“备份集中的数据库备份与现有的xx数据库不同”解决方法

来源:互联网 发布:c语言接口与实现 豆瓣 编辑:程序博客网 时间:2024/06/06 06:33

因为是在另一台电脑对同名数据库做的备份,用常规方法还原,提示不是相同数据库,不让还原,在网上找到下面的方法解决了:

一、右击系统数据库master,新建查询

执行以下SQL代码:

RESTORE DATABASE xxxFROM DISK = 'E:\DB\xxx.bak'   --bak文件路径with replace,MOVE 'xxx' TO 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\xxx.mdf',   --mdf文件路径MOVE 'xxx_log' TO 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\xxx.ldf'   --ldf文件路径

注释:xxx是你需要还原的数据库名称,xxx.bak是你需要还原的备份文件。

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

或者

完整代码样例: 
Sql代码  
USE Master  
GO  
ALTER DATABASE CQMineOA SET OFFLINE WITH ROLLBACK IMMEDIATE  
GO  
restore database CQMineOA from disk = 'e:\CQMineOA.bak'     
WITH MOVE 'CQMineOA' TO 'E:\db\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\CQMineOA.mdf',  
MOVE 'CQMineOA_log' www.2cto.com TO 'E:\db\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\CQMineOA.ldf',  
replace,NOUNLOAD,STATS=10   
GO  
alter   database  CQMineOA  set   online    
GO