因为停电等原因造成MSSQL数据库出现错误的修复

昨天因为某种原因,一个SQL数据库出现问题,页面执行报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

你可能感兴趣的:(MSSQL)