--返回由备份集内包含的数据库和日志文件列表组成的结果集
RESTORE FILELISTONLY
FROM DISK = 'd:/Northwind.bak'
--还原由BACKUP备份的数据库
RESTORE DATABASE Northwind
FROM DISK = 'd:/Northwind.bak'
--指定还原后的数据库物理文件名称及路径 (可用于cluster server)
RESTORE DATABASE MyDataBase
FROM DISK = 'd:/Northwind.bak'
WITH
MOVE 'Northwind' TO 'd:/MyDataBase .mdf',
MOVE 'Northwind_log' TO 'd:/MyDataBase .ldf'
MOVE 'logical_file_name' TO 'operating_system_file_name'
指定应将给定的 logical_file_name 移到 operating_system_file_name。
默认情况下,logical_file_name 将还原到其原始位置。如果使用 RESTORE
语句将数据库复制到相同或不同的服务器上,则可能需要使用 MOVE 选项重
新定位数据库文件以避免与现有文件冲突。可以在不同的 MOVE 语句中指定
数据库内的每个逻辑文件。
--强制还原,加上REPLACE参数,则在现有数据库基础上强制还原。
use master
RESTORE DATABASE MyDataBase
FROM DISK = ''d:/MyDataBase.bak'
WITH REPLACE,
MOVE 'Northwind' TO 'd:/MyDataBase.mdf',
MOVE 'Northwind_log' TO ''d:/MyDataBase.ldf'
如果restore 到新的database 名称, 则需要改以前数据库的逻辑名称:
sp_helpdb ‘dbname'
/* Set Database as a Single User */
ALTER DATABASE [dbname ] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
/* Change Logical File Name */
ALTER DATABASE [dbname ] MODIFY FILE ( NAME= oldlogicdbname ' , NEWNAME = ‘newlogicdbname ' )
GO
ALTER DATABASE [dbname ] MODIFY FILE ( NAME= oldlogicdbname _log' , NEWNAME = N' newlogicdbname _log' )
GO
ALTER DATABASE [dbname ] SET MULTI_USER