(在数据库 ‘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