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

标签 sql sql-server-2005

当我执行查询时

 Select * from TableName

我收到这个错误:

在页面 (1:4796) 上的数据库“MYDABATADASE”(ID:5) 的内部操作期间检测到不一致。请联系技术支持。引用编号 7.

如何修复此错误?

最佳答案

尝试run DBCC CHECKDB并在它结束后尝试分析输出(输出将建议您解决问题所需的用户操作)或(和)尝试从上次已知的良好备份恢复您的数据库。

DBCC CHECKDB('YOUR_DB_NAME') WITH NO_INFOMSGS, ALL_ERRORMSGS

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;

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

关于sql - 在数据库内部操作期间检测到不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22830952/

相关文章:

sql同名但值不同

sql-server - 从两个值创建唯一编号;位移位?

c# - 如何在 SQL Server 2005 中执行服务器端分页

c# - 如何在 SQL Server 中存储 Point 数据类型?

mysql - 使用字符串匹配对查询结果进行重复数据删除

mysql - SQL - Where...In 子句中的选择联合

sql - 从 SQL Server 中的 3 列获取平均值

sql - 获取总计数和子集计数的最简单方法?

c# - 限制插入 SQL Server 数据库的行数

mysql - 统一并简化 MySQL 命令