数据库内部操作期间检测到不一致

use*_*343 2 sql sql-server-2005

当我执行查询时

 Select * from TableName
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

在页面(1:4796)上的数据库'MYDABATADASE'(ID:5)中进行内部操作期间检测到不一致。请联系技术支持。参考编号7。

如何解决此错误?

And*_*zov 5

尝试运行 DBCC CHECKDB,并在结束后尝试分析输出(输出将建议您解决此问题所需的用户操作)或(并且)尝试从上次已知的正常备份中还原数据库。

DBCC CHECKDB('YOUR_DB_NAME') WITH NO_INFOMSGS, ALL_ERRORMSGS
Run Code Online (Sandbox Code Playgroud)

DBCC CHECKDB输出可以建议两个修复选项

  • REPAIR_REBUILD-执行的修复不会导致任何数据丢失。
  • REPAIR_ALLOW_DATA_LOSS-执行修复并修复损坏的数据库结构,还可能导致数据丢失

在决定使用哪个选项(假设您选择了第二个)之后,您需要执行类似于以下的代码:

ALTER DATABASE [YOUR_DB_NAME] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
BEGIN TRANSACTION;
    DBCC CHECKDB ('YOUR_DB_NAME', REPAIR_ALLOW_DATA_LOSS);
    ALTER DATABASE [YOUR_DB_NAME] SET MULTI_USER;
COMMIT;
Run Code Online (Sandbox Code Playgroud)

请注意,SQLDUMPnnnn.txt是在SQL Server LOG目录中创建的,并且包含DBCC CHECKDB命令的结果和其他诊断输出。(来源