库SQL SERVER出现大量一致性错误的解决方法

(在数据库 ‘SBO_TEST’ 中)的处理方法。店铺的数据库有错误时的修复方法如下:

1、在SQL查询分析器中执行以下语句:(注以下所用的 SBO_TEST 为数据库名称,请用户手工改为自己的数据库名)
use SBO_TEST
dbcc checkdb
2、查看查询结果,有很多红色字体显示,最后结果有这样的提示:

–CHECKDB –发现了x个分配错误和 x 个一致性错误(在数据库 ‘ SBO_TEST ‘ 中)。

–一般情况下,引起分配错误的原因是磁盘损坏或突然停电;一致性错误可能是数据库中的表或索引坏,一般都可修复。

3、查看红色字体,并把有错误的数据库表名记录下来,或把索引损坏的表名记录下来。
4、把数据库设置为单用户模式,直接在查询分析器中执行以下语句即可:(如发现语句运行不成功,请把用户的电脑注销一下,后再重新运行一下。)
EXEC sp_dboption ' SBO_TEST ', 'single user', 'TRUE' 
5、进入查询分析器执行如下语句:
use  SBO_TEST 

dbcc checkdb(' SBO_TEST ',repair_allow_data_loss)  -------修复数据库

dbcc checkdb (' SBO_TEST ',REPAIR_REBUILD)           -------修复数据库索引
6、再执行:dbcc checkdb,检测数据库,出现结果为:

–CHECKDB 发现了0个分配错误和 0个一致性错误(在数据库 ‘ SBO_TEST ‘ 中)。

–数据库已经修复完毕。

7、取消单用户模式,即直接在查询分析器中执行以下语句即可:
EXEC sp_dboption ' SBO_TEST ', 'single user','FALSE'
8、重建索引
USE E6PlateformTemperature1;
DECLARE @name varchar(100)
 
DECLARE authors_cursor CURSOR FOR  

 Select b.name+'.'+a.name name from sys.all_objects a ,sys.schemas b where a.schema_id=b.schema_id and a.type='U';
OPEN authors_cursor
 
FETCH NEXT FROM authors_cursor  INTO @name
 
WHILE @@FETCH_STATUS = 0 
BEGIN    
 
   DBCC DBREINDEX (@name, '', 90)
 
   FETCH NEXT FROM authors_cursor  
   INTO @name 
END
 
deallocate authors_cursor
    原文作者:若有所思11
    原文地址: https://www.jianshu.com/p/80b74f9a6e77
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞