起因
很久之前的C/S的客户安装的软件,突然不能启动,并报异常,如下图:
解决方案
先用DBCC命令检查数据库的报错信息,再REPAIR_ALLOW_DATA_LOSS 报错的对应表名。
sql 语句如下:
USE MASTER
GO
sp_dboption '数据库名', 'single user', 'true' // 启用单人模式
Go
DBCC CHECKDB('数据库名', REPAIR_ALLOW_DATA_LOSS) // 检查异常 打印log
Go
USE 数据库名
go
exec sp_msforeachtable 'DBCC CHECKTABLE("表名",REPAIR_ALLOW_DATA_LOSS)' // 修复表
exec sp_msforeachtable 'DBCC DBREINDEX("表名")'
go
sp_dboption '数据库名', 'single user', 'false' // 关闭单人模式
Go