[置顶] sql2008 语句还原数据库

--返回由备份集内包含的数据库和日志文件列表组成的结果集。 
--主要获得逻辑文件名   www.2cto.com  
--restore filelistonly from disk = 'D:\xxx.bak'
 
/* 
利用bak恢复数据库,强制还原(REPLACE) 
STATS = 10 每完成10%显示一条记录 
DBTest和DBTest_log是上面g:\back.Bak里的逻辑文件 
*/
USE master 
RESTORE DATABASE xxx
FROM DISK = 'D:\xxx.bak' 
WITH REPLACE,
MOVE 'xxx_Data' TO 'D:\xxx.MDF', 
MOVE 'xxx_Log' TO 'D:\xxx.LDF',
STATS = 10

GO


参考:

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

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

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

执行以下SQL代码:

RESTORE DATABASE xxx
FROM 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文件还原一次数据库就大功告成了,必须要选中覆盖还原哦。

http://www.cnblogs.com/huangfr/archive/2012/08/09/2629687.html

你可能感兴趣的:([置顶] sql2008 语句还原数据库)