上一篇 https://vip.kingdee.com/article/5004
1.2.2 异常解决方案
分离数据库报错,无法分离时,可能是日志文件已损坏,此时可采用SQL语句修复数
据库日志重新生成。操作步骤如下:
第一步,打开数据库管理器,单击界面左上角工具栏中的“新建查询”,即为下图-4所示标识数字1,并选择图-4中2处选择质疑的数据库。
第二步,在打开的界面中输入如下SQL语句,单击图-4中3处“执行”即可解决。
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
ALTER DATABASE MyDB SET EMERGENCY
GO
sp_dboption 'MyDB', 'single user', 'true'
GO
DBCC CHECKDB('MyDB','REPAIR_ALLOW_DATA_LOSS')
GO
ALTER DATABASE MyDB SET ONLINE
GO
sp_configure 'allow updates', 0 reconfigure with override
GO
sp_dboption 'MyDB', 'single user', 'false'
GO
图-4 新建查询
分析与说明
1.由于MSSQL 2005/2008 版本,不允许再修改数据库系统表,因而SQL语句与
MSSQL2000的数据库不同。
2.语句中的MyDB根据实际情况更改成当前质疑的数据库名称。
3.SQL语句的说明如下(斜体字部分根据实际情况改成当前质疑的数据库实体名称):
(1)SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE --更新系统表中的字段,运行后效果如下图-5所示;
图-5 执行第一条语句效果图
(2)ALTER DATABASE AIS20150408123859 SET EMERGENCY--修改数据库为紧急模式,执行后效果如下图-6所示;
图-6 执行第二条语句效果图
(3)sp_dboption 'AIS20150408123859', 'single user', 'true'--使数据库变为单用户模式,执行后效果如下图-7所示;
图-7 执行第三条语句效果图
(4)DBCC CHECKDB('AIS20150408142433','REPAIR_ALLOW_DATA_LOSS') --修复数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对象错误,执行后效果如下图-8所示,会有警告信息;
图-8 执行第四条语句效果图
(5)ALTER DATABASE AIS20150408142433 SET ONLINE --使数据库联机,执行后效果如下图-9所示;
图-9 执行第五条语句效果图
(6)sp_configure 'allow updates', 0 reconfigure with override –将数据库的状态还原,执行后效果如下图-10所示;
图-10 执行第六条语句效果图
(7)sp_configure ’allow updates', 0 reconfigure with override –-将数据库用户模式更改回来,图-11 执行第七条语句效果图
图-11 执行第七条语句效果图
推荐阅读