mssql数据库经常会出现数据库的未知错误,功能无法使用,特别是停电,断电等原因,数据丢失,一般情况修复非常困难,下面介绍两种出现
数据库错误并已无法使用的修复方法:
昨天因为某种原因,可能是掉电导致的,SQL2000中的一个的数据库出现了问题,页面执行报823错误,经查里面的一个表出现问题,初步断定是数据库索引出现问题,故障是不能执行带order by 和count的SQL语句,后查资料,使用查询分析器,执行如下
数据库修复代码搞定:
USE MASTER
GO
sp_dboption ‘databaseName’, ’single user’, ‘true’
Go
DBCC CHECKDB(’databaseName’, REPAIR_REBUILD)
Go
USE databaseName
go
exec sp_msforeachtable ‘DBCC CHECKTABLE(’?’,REPAIR_REBUILD)’
go
sp_dboption ‘databaseName’, ’single user’, ‘false’
Go
如果还不行,可以采用允许丢失
数据的方式修复,如下:
USE MASTER
GO
sp_dboption ‘databaseName’, ’single user’, ‘true’
Go
DBCC CHECKDB(’databaseName’, REPAIR_ALLOW_DATA_LOSS)
Go
USE databaseName
go
exec sp_msforeachtable ‘DBCC CHECKTABLE(’?’,REPAIR_REBUILD)’
go
sp_dboption ‘databaseName’, ’single user’, ‘false’
Go