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,则数据库 引擎会发出错误。