用 DBCC CHECKTABLE('tablename') 看能否修复,如不行,重新建表,把没有问题的数据导到新表

解决方案 »

  1.   

    直接 
      select * into temptable from tablename 
      1、把数据放到临时表中
      2、drop table tablename
      3、select * into tablename from temptable 
      4、这样在导出试试
      

  2.   

    mssql 重装了都不行..应该是当时正在更新数据库的那条数据..然后现在只要select到那条数据就出错了..完全没办法用DBCC CHECKTABLE('tablename') 显示务器: 消息 8929,级别 16,状态 1,行 1
    对象 ID 2096726522: 在文本 ID 3498930536448 中发现错误,该文本的所有者是由 RID = (1:49356:50) id = 642 标识的数据记录。
    服务器: 消息 8929,级别 16,状态 1,行 1
    对象 ID 2096726522: 在文本 ID 3498995679232 中发现错误,该文本的所有者是由 RID = (1:49361:55) id = 1632 标识的数据记录。
    服务器: 消息 8929,级别 16,状态 1,行 1
    对象 ID 2096726522: 在文本 ID 3499071635456 中发现错误,该文本的所有者是由 RID = (1:49367:32) id = 2791 标识的数据记录。
    服务器: 消息 8929,级别 16,状态 1,行 1
    对象 ID 2096726522: 在文本 ID 3499078647808 中发现错误,该文本的所有者是由 RID = (1:49367:139) id = 2898 标识的数据记录。
    服务器: 消息 8929,级别 16,状态 1,行 1
    对象 ID 2096726522: 在文本 ID 3499316936704 中发现错误,该文本的所有者是由 RID = (1:49386:32) id = 6534 标识的数据记录。
    服务器: 消息 8961,级别 16,状态 1,行 1
    表错误: 对象 ID 2096726522。text、ntext 或 image 节点(位于页 (1:135),槽 0,文本 ID 3499078647808)与该节点位于页 (1:35910),槽 0 处的引用不匹配。
    服务器: 消息 8961,级别 16,状态 1,行 1
    表错误: 对象 ID 2096726522。text、ntext 或 image 节点(位于页 (1:576),槽 0,文本 ID 3499316936704)与该节点位于页 (1:39475),槽 0 处的引用不匹配。
    服务器: 消息 8961,级别 16,状态 1,行 1
    表错误: 对象 ID 2096726522。text、ntext 或 image 节点(位于页 (1:3153),槽 0,文本 ID 3499071635456)与该节点位于页 (1:35791),槽 2 处的引用不匹配。
    服务器: 消息 8961,级别 16,状态 1,行 1
    表错误: 对象 ID 2096726522。text、ntext 或 image 节点(位于页 (1:15176),槽 0,文本 ID 3498930536448)与该节点位于页 (1:28633),槽 0 处的引用不匹配。
    服务器: 消息 8961,级别 16,状态 1,行 1
    表错误: 对象 ID 2096726522。text、ntext 或 image 节点(位于页 (1:32518),槽 0,文本 ID 3498995679232)与该节点位于页 (1:32413),槽 5 处的引用不匹配。
    服务器: 消息 8961,级别 16,状态 1,行 1
    表错误: 对象 ID 2096726522。text、ntext 或 image 节点(位于页 (1:39475),槽 0,文本 ID 3499316936704)与该节点位于页 (1:39444),槽 4 处的引用不匹配。
    'tag_id' 的 DBCC 结果。
    对象 'so_tag_id' 有 126547 行,这些行位于 643 页中。
    CHECKTABLE 发现了 0 个分配错误和 11 个一致性错误(在表 'so_tag_id' 中,该表的对象 ID 为 2096726522)。
    repair_allow_data_loss 是最低的修复级别(对于由 DBCC CHECKTABLE (test.dbo.so_tag_id ) 发现的错误而言)。
      

  3.   

    alter database lt_erp set single_user with rollback immediate
    go
    dbcc checktable('dtr_shch_m1',repair_allow_data_loss)
    go执行显示
    服务器:消息 7919,级别 16, 状态 3, 行1
    未处理修复语句.数据库需要处于单用户模式下.
    DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。这是为什么呀?。。数据库明明是显示(单个用户)。。为什么无法执行呢?