先备份一下文件,然重建一个日志文件,然后反复运行下面的命令,直到dbcc不报错。
dbcc checkdb('zqdata_11',repair_allow_data_loss) 

解决方案 »

  1.   


    --尝试找出是哪个表索引出了问题,如tb
    use master
    exec sp_dboption 'zqdata_11','single user','true'
    DBCC CHECKDB('zqdata_11',repair_rebuild)
    DBCC CHECKDB('zqdata_11',repair_allow_date_loss)
    use zqdata_11
    exec sp_msforeachtable 'dbcc checktable("p_code",repair_rebuild)'
    exec sp_msforeachtable 'dbcc dbreindex("p_code")'
    exec sp_dboption 'zqdata_11','single user','false'
    go
      

  2.   

    忘了把p_code替换成tb,改一下use master
    exec sp_dboption 'zqdata_11','single user','true'
    DBCC CHECKDB('zqdata_11',repair_rebuild)
    DBCC CHECKDB('zqdata_11',repair_allow_date_loss)
    use zqdata_11
    exec sp_msforeachtable 'dbcc checktable("tb",repair_rebuild)'
    exec sp_msforeachtable 'dbcc dbreindex("tb")'
    exec sp_dboption 'zqdata_11','single user','false'
    go
      

  3.   

    不行,你们给出的方法我都试过了,还是不行。
    对了,比如说某个表为  aaa
    在出了这个错以后,连在查询分析器里用 select * from aaa;
    都出不来结果呢。
      

  4.   

    我用下面这个语句来查询数据库的错误时: 
      alter database zqdata_11 set single_user 
    dbcc checkdb('zqdata_11',repair_allow_data_loss) 
    alter database zqdata_11 set multi_user 报下面这样的索引错误: 
        服务器: 消息 8929,级别 16,状态 1,行 2 
    对象 ID 2: 在文本 ID 16772759552 中发现错误,该文本的所有者是由 RID = (1:107:0) id = 1720393198 and indid = 1 标识的数据记录。 
    服务器: 消息 8929,级别 16,状态 1,行 2 
    对象 ID 2: 在文本 ID 16907632640 中发现错误,该文本的所有者是由 RID = (1:243:11) id = 47391288 and indid = 2 标识的数据记录。 
    服务器: 消息 8929,级别 16,状态 1,行 2 
    对象 ID 2: 在文本 ID 16908222464 中发现错误,该文本的所有者是由 RID = (1:243:15) id = 55723301 and indid = 2 标识的数据记录。 问:各位有没好的方法可以修复这样的错误?1.先把现有的索引删除掉
    2.再重建索引