说明 所有的示例均假定已执行了完整数据库备份
A 还原完整数据库
说明 MyNwind 数据库仅供举例说明
下例显示还原完整数据库备份
RESTORE DATABASE MyNwind
FROM MyNwind_
B 还原完整数据库备份和差异备份
下例还原完整数据库备份后还原差异备份另外下例还说明如何还原媒体上的另一个备份集差异备份追加到包含完整数据库备份的备份设备上
RESTORE DATABASE MyNwind
FROM MyNwind_
WITH NORECOVERY
RESTORE DATABASE MyNwind
FROM MyNwind_
WITH FILE =
C 使用 RESTART 语法还原数据库
下例使用 RESTART 选项重新启动因服务器电源故障而中断的 RESTORE 操作
This database RESTORE halted prematurely due to power failure
RESTORE DATABASE MyNwind
FROM MyNwind_
Here is the RESTORE RESTART operation
RESTORE DATABASE MyNwind
FROM MyNwind_ WITH RESTART
D 还原数据库并移动文件
下例还原完整数据库和事务日志并将已还原的数据库移动到 C:\Program Files\Microsoft SQL Server\MSSQL\Data 目录下
RESTORE DATABASE MyNwind
FROM MyNwind_
WITH NORECOVERY
MOVE MyNwind TO c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwindmdf
MOVE MyNwindLog TO c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwindldf
RESTORE LOG MyNwind
FROM MyNwindLog
WITH RECOVERY
E 使用 BACKUP 和 RESTORE 创建数据库的复本
下例显示使用 BACKUP 和 RESTORE 语句创建 Northwind 数据库的复本MOVE 语句使数据和日志文件还原到指定的位置RESTORE FILELISTONLY 语句用于确定待还原数据库内的文件数及名称该数据库的新复本称为 TestDB有关更多信息请参见 RESTORE FILELISTONLY
BACKUP DATABASE Northwind
TO DISK = c:\Northwindbak
RESTORE FILELISTONLY
FROM DISK = c:\Northwindbak
RESTORE DATABASE TestDB
FROM DISK = c:\Northwindbak
WITH MOVE Northwind TO c:\test\testdbmdf
MOVE Northwind_log TO c:\test\testdbldf
GO
F 使用 STOPAT 语法还原到即时点和使用多个设备进行还原
下例将数据库还原到其在 年 月 日中午 点时的状态并显示涉及多个日志和多个备份设备的还原操作
RESTORE DATABASE MyNwind
FROM MyNwind_ MyNwind_
WITH NORECOVERY
RESTORE LOG MyNwind
FROM MyNwindLog
WITH NORECOVERY
RESTORE LOG MyNwind
FROM MyNwindLog
WITH RECOVERY STOPAT = Apr : AM
G 使用 TAPE 语法还原
下例显示从 TAPE 备份设备还原完整数据库备份
RESTORE DATABASE MyNwind
FROM TAPE = \\\tape
H 使用 FILE 和 FILEGROUP 语法还原
下例还原一个包含两个文件一个文件组和一个事务日志的数据库
RESTORE DATABASE MyNwind
FILE = MyNwind_data_
FILE = MyNwind_data_
FILEGROUP = new_customers
FROM MyNwind_
WITH NORECOVERY
Restore the log backup
RESTORE LOG MyNwind
FROM MyNwindLog
I 将事务日志还原到标记处
下例显示将事务日志还原到名为RoyaltyUpdate的标记处
BEGIN TRANSACTION RoyaltyUpdate
WITH MARK Update royalty values
GO
USE pubs
GO
UPDATE roysched
SET royalty = royalty *
WHERE title_id LIKE PC%
GO
COMMIT TRANSACTION RoyaltyUpdate
GO
Time passes Regular database
and log backups are taken
An error occurs
USE master
GO
RESTORE DATABASE pubs
FROM Pubs
WITH FILE = NORECOVERY
GO
RESTORE LOG pubs
FROM Pubs
WITH FILE =
STOPATMARK = RoyaltyUpdate