首页 > 代码库 > SQL Server 查找表问题
SQL Server 查找表问题
使用以下SQL遍历表,查询是否有问题
DECLARE @table_name VARCHAR(50)DECLARE cursor_table CURSOR FOR SELECT name FROM sys.tablesOPEN cursor_tableFETCH next FROM cursor_table INTO @table_nameWHILE( @@FETCH_STATUS = 0 ) BEGIN DBCC checktable(@table_name) PRINT ‘ ‘ PRINT ‘=============================================‘ PRINT ‘ ‘ FETCH next FROM cursor_table INTO @table_name ENDCLOSE cursor_tableDEALLOCATE 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)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。