MSDN 关于命令“DBCC CHECKDB”的文章在语法部分解释了执行数据库修复的三种方法:
- REPAIR_ALLOW_DATA_LOSS
- REPAIR_FAST
- REPAIR_REBUILD
但是我在寻找如何修复可疑数据库(我在这种模式下执行这些步骤)时发现了以下语句,我无法理解它是三种模式中的哪一种:
DBCC CHECKDB(数据库名称,修复)
我执行了声明,它工作正常。我很困惑,因为在没有用“_allow_data_loss”、“_fast”或“_rebuild”结束这个词的情况下,没有单独提到“修复”参数。
如果我尝试在处于紧急状态的数据库上运行“DBCC CHECKDB ( databaseName , repair_rebuild )”,我会收到一条错误消息,指出当数据库处于紧急状态时我无法执行该级别的修复。所以,我放弃了单独的“修复”是“repair_rebuild”。
该语句是我发现的脚本中的第三行:
- ALTER DATABASE 数据库名称 SET EMERGENCY;
- ALTER DATABASE 数据库名称 SET SINGLE_USER;
- DBCC CHECKDB(数据库名称,修复)ALL_ERRORMSGS
- ALTER DATABASE 数据库名称 SET MULTI_USER;
- ALTER DATABASE 数据库名 SET ONLINE;
如果我读取第三条语句执行的输出,我会看到有关该过程的信息,但与修复中使用的级别无关。
提前致谢,