zoukankan      html  css  js  c++  java
  • SQL Server 查找表问题

    使用以下SQL遍历表,查询是否有问题

    DECLARE @table_name VARCHAR(50)
    DECLARE cursor_table CURSOR FOR
      SELECT name
      FROM   sys.tables
    
    OPEN cursor_table
    
    FETCH next FROM cursor_table INTO @table_name
    
    WHILE( @@FETCH_STATUS = 0 )
      BEGIN
          DBCC checktable(@table_name)
    
          PRINT '                                             '
    
          PRINT '============================================='
    
          PRINT '                                             '
    
          FETCH next FROM cursor_table INTO @table_name
      END
    
    CLOSE cursor_table
    
    DEALLOCATE cursor_table 

    如果有问题,则会输入类似下面的记录:

    rece_money的 DBCC 结果。
    消息 8952,级别 16,状态 1,第 1 行
    表错误: 表 'rece_money' (ID 507148852)。索引 'PK_rece_money' (ID 25)中的索引行与任何数据行都不匹配。可能是以下行的多余或无效的键:
    消息 8956,级别 16,状态 1,第 1
    ... ... ...
    表错误: 表 'rece_money' (ID 507148852)。索引 'PK_rece_money' (ID 25)中的索引行与任何数据行都不匹配。可能是以下行的多余或无效的键: 消息 8956,级别 16,状态 1,第 1 行 索引行(1:171607:21)的值为(rece_money_id = '0000148773' and rece_money_type = '回款单' and HEAP RID = (1:34467:34)),指向由(HEAP RID = (1:34467:34))标识的数据行。 对象 'rece_money'3043 页中有 57111 行。 CHECKTABLE 在表 'rece_money' (对象 ID 507148852)中发现 0 个分配错误和 19 个一致性错误。 对于由 DBCC CHECKTABLE (zyhadm.dbo.rece_money)发现的错误,repair_rebuild 是最低的修复级别。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

    通过语句修复 

    DBCC CHECKTABLE (rece_money,repair_rebuild)
  • 相关阅读:
    Mego(02)
    Mego(01)
    ThoughtWorks(中国)程序员读书雷达 —— 书籍下载整理
    Spring源码编译一次性通过&遇到的坑解决方法
    Elasticsearch怎么修改索引字段类型?
    Flume 自定义拦截器 多行读取日志+截断
    用Hibernate框架把hql生成可执行的sql语句-Oracle方言
    深入浅出SQL Server中的死锁 [转于CareySon]
    第一次迭代随笔
    结对编程代码分析
  • 原文地址:https://www.cnblogs.com/wangning-aaron/p/3880176.html
Copyright © 2011-2022 走看看