SQL Server:如果我没有为RESTORE DATABASE指定RECOVERY模式,那么默认值是什么?

问题描述:

来自:http://msdn.microsoft.com/en-us/library/ms187495.aspxSQL Server:如果我没有为RESTORE DATABASE指定RECOVERY模式,那么默认值是什么?

实施例:

--restore与常规日志备份(从备份集2)。

RESTORE LOG AdventureWorks2008R2 
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2FullRM.bak' 
WITH FILE=2, 
NORECOVERY; 

我的问题:如果我没有指定NORECOVERY,它会是默认值吗?我有一堆以这种方式迁移的数据库,我不知道如何判断使用哪种恢复模式。

谢谢

RECOVERY是默认值。请参阅RESTORE命令,其中规定的文档:

复苏的比较和NORECOVERY

回滚被控制通过[ 恢复还原声明| NORECOVERY]选项:

NORECOVERY指定不发生回滚。这允许前滚 以序列中的下一个语句继续。

在这种情况下,恢复顺序可以恢复其他备份并向前滚动 。

RECOVERY(默认值)表示在当前备份的前滚完成后应执行回滚 。

恢复数据库需要恢复整个数据集 (前滚集)与数据库一致。如果 前滚集尚未向前滚动到足以与数据库一致的 ,并且指定了RECOVERY,则数据库 引擎会发出错误。