Sql server对表操作提示“校验和不正确报错”

在SSMS中,对表操作,有时候会在结果消息栏提示很多红字错误。

  • Symptom:在SSMS中,对表操作,有时候会在结果消息栏提示:
     SQL Server 检测到基于一致性的逻辑 I/O 错误 校验和不正确(应为: 0x87a5fa60,但实际为: 0x9831fdf4)。在文件 'X:\Mydb\Orders_1.ndf' 中、偏移量为 0x00000010962000 的位置对数据库 ID 10 中的页 (3:33969) 执行 读取 期间,发生了该错误。SQL Server 错误日志或系统事件日志中的其他消息可能提供了更详细信息。这是一个威胁数据库完整性的严重错误条件,必须立即纠正。请执行完整的数据库一致性检查(DBCC CHECKDB)。此错误可以由许多因素导致;有关详细信息,请参阅 SQL Server 联机丛书。
  • RootCause:可能对表的操作异常中断,导致此表存储出现异常,部分页无法正常调用。
  • Resolution:通过DBCC CHECKDB命令进行修复。
    • 如果库内容比较少,或者库中多个表存在异常,可通过整个库进行操作:

use [DBname]

go

ALTER DATABASE [DBname] SET SINGLE_USER

DBCC CHECKDB([DBname], repair_allow_data_loss) with NO_INFOMSGS

go

ALTER DATABASE [DBnameSET MULTI_USER

go

    • 如果库内容比较多,或者确认只有之中的个别表存在异常,可仅对表进行操作:

use [DBname]

go

ALTER DATABASE [DBname] SET SINGLE_USER

DBCC CHECKTABLE ([TableName], repair_allow_data_loss) with NO_INFOMSGS

go

ALTER DATABASE [DBnameSET MULTI_USER

go

注意:

  1. 绿色库名,表名根据实际修改。
  2. 由于需要切换数据库为SINGLE_USER模式,如果长时间无法运行完成,可能切换出现了问题,建议重启sql server服务。正常情况下语句切换几分钟过就可以修复完毕。

use [DM_Customer]

 

go

 

ALTER DATABASE [DM_Customer] SET SINGLE_USER

 

DBCC CHECKTABLE([UserCounterFY14-15], repair_allow_data_loss) with NO_INFOMSGS

 

go

 

ALTER DATABASE [DM_Customer] SET MULTI_USER

 

go

转载于:https://www.cnblogs.com/genei/p/5530021.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值