数据库修复 /***************************************************************** * 本语句可以多次执行,一直到没有红色文字出现,则修复成功 * 这类故障是一般是由于磁盘读写问题造成的。 * 'hbposv8'代表要修复的数据库 * 下面的语句是修复总部数据库的SQL,如需要修复分部的数据库,请将 'hbposv8' 改为 'hbposv8_branch' ******************************************************************/ --请在查询分析器中执行下列语句.执行前断开其它所有数据库连接,最好是断开网线 USE master Go --单用户模式 EXEC sp_dboption 'hbposv8', 'single user', 'TRUE' go --数据库检查 DBCC CHECKDB ('hbposv8') Go --如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复 --数据库修复 DBCC CHECKDB ('hbposv8',repair_rebuild) Go --再次数据库检查,如果返回结果中没有了红色的提示文字,说明修复成功; DBCC CHECKDB ('hbposv8') Go --否则意味着还需要更高级别的修复;尝试将上面修复语句的'repair_rebuild'换为'repair_allow_data_loss'再试,之后再次检查数据库。 --如果还有错误未修复, --退出前请一定要执行以下语句返回到多用户模式 EXEC sp_dboption 'hbposv8', 'single user','FALSE' Go 数据库索引修复 损坏后的数据库在通过以上语句修复数据库完后,一般都伴随着索引的损坏。所以务必在数据库修复完后,执行以下语句修复索引。 use 'hbposv8'--可改成相应的数据库名 go declare @tablename varchar(100) declare test_cur cursor for select object_name(id) from syscolumns where status=128 open test_cur fetch test_cur into @tablename while @@fetch_status=0 begin DBCC CHECKIDENT (@tablename, RESEED) fetch test_cur into @tablename end close test_cur deallocate test_cur go