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

时间:2011-10-05 18:54:11

标签: sql-server database backup

来自:http://msdn.microsoft.com/en-us/library/ms187495.aspx

示例:

- 恢复常规日志备份(来自备份集2)。

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

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

由于

1 个答案:

答案 0 :(得分:2)

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

  

RECOVERY和NORECOVERY的比较

     

回滚由RESTORE语句通过[   恢复| NORECOVERY]选项:

     

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

     

在这种情况下,还原序列可以还原其他备份并进行滚动   他们前进。

     

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

     

恢复数据库需要整个数据集   已恢复(前滚集)与数据库一致。如果   前滚集还没有向前滚动到足够远   与数据库一致且指定了RECOVERY,数据库   引擎发出错误。