执行 dbcc checkdb(数据库名)返回 服务器: 消息 8966,级别 16,状态 1,行 1
未能读取并闩锁页 (1:371)(用闩锁类型 SH)。sysindexes 失败。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。dbcc checktable sysindexes  没有报错这应该怎么解决呀 ? 

解决方案 »

  1.   

    --先备份一下要修复的数据库,再执行下面的操作(此方法曾修复过2000的数据库)--把下面的数据库名blpsjxc_fzgt改成你自己的数据库名
    use master
    go
    exec sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE
    go
    update sysdatabases set status=32768 where name='blpsjxc_fzgt'
    go
    DBCC REBUILD_LOG ('blpsjxc_fzgt','D:\Microsoft SQL Server\MSSQL\Data\blpsjxc_fzgt.LDF')
    go
    update sysdatabases set status=0 where name='blpsjxc_fzgt' 
    go
    restore database blpsjxc_fzgt WITH RECOVERY 
    go
    exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE 
      

  2.   

    应该是还有连接在上面跑呢,开了事务呢.你把其它的连接先断开.再把数据库改为单用户模式.
    再执行DBCC
      

  3.   

    这跟修复 sysindexes 没关系。
      

  4.   

    谢谢  这个错误 是由 数据库附加时出错误信息 823
     修复 质疑后 执行dbcc  check  (数据库) 检查数据库的完整性 出现上述错误cd 731107 方案执行过了 ,
    kingtiy  的方案 我改了 单用户模式也是不行 呢 ?