小编agd*_*iaz的帖子

“DBCC CHECKDB (databasename, repair)”是哪种修复级别?

MSDN关于命令“DBCC CHECKDB”的文章在语法部分解释了三种执行数据库修复的方法:

- REPAIR_ALLOW_DATA_LOSS
- REPAIR_FAST
- REPAIR_REBUILD
Run Code Online (Sandbox Code Playgroud)

但是当我在寻找如何修复嫌疑人(我在执行这些步骤时置于此模式下)数据库时发现以下语句,我无法理解它是三种模式中的哪一种:

DBCC CHECKDB(数据库名称修复

我执行了该语句,它运行良好。我很困惑,因为在没有用“_allow_data_loss”、“_fast”或“_rebuild”结束单词的情况下,没有单独提到“修复”参数。

如果我尝试在处于紧急状态的数据库上运行“DBCC CHECKDB ( databaseName , repair_rebuild )”,我会收到一条错误消息,指出我无法在数据库处于紧急状态时执行该级别的修复。所以,我放弃了“修复”本身就是“修复重建”。

该语句是我发现的脚本中的第三行:

  1. ALTER DATABASE databaseName SET EMERGENCY;
  2. ALTER DATABASE 数据库名称 SET SINGLE_USER;
  3. DBCC CHECKDB(数据库名称,修复)ALL_ERRORMSGS
  4. ALTER DATABASE databaseName SET MULTI_USER;
  5. ALTER DATABASE databaseName SET ONLINE;

如果我阅读第三个语句执行的输出,我会看到有关该过程的信息,但与修复中使用的级别无关。

提前致谢,

sql-server dbcc dbcc-checkdb

5
推荐指数
1
解决办法
867
查看次数

标签 统计

dbcc ×1

dbcc-checkdb ×1

sql-server ×1