处理SQL2000附加数据库时出现【服务器: 消息 1813,级别 16,状态 2,行 1未能打开新数据库】的异常

错误详细:提示错误:服务器: 消息 1813,级别 16,状态 2,行 1未能打开新数据库 'OA_DB'。CREATE DATABASE 将终止。设备激活错误。物理文件名 'D:/OA/OA_DB_Log.LDF' 可能有误。

 

造成经过:发现老服务器的空间不足,检查发现几个数据库的日志都灰常庞大,于是直接分离->删除日志文件->再次附加数据库时,提示如上错误。

 

解决办法

 

1. 建立新的同名数据库(OA_DB)。

2. 停止SQL服务,并删除新建的OA_DB_Log.LDF文件。

3. 启动SQL服务(此时该数据显示为置疑,暂不用管它),查询分析器中执行:

 

use master
GO

 

Begin
sp_configure 'allow updates',1
GO 
reconfigure with override
GO
update sysdatabases set status=-32768 where dbid=DB_ID('OA_DB')

End


-- 重新建立LOG文件

Begin
dbcc rebuild_log('OA_DB', 'D:/OA/OA_DB_Log.LDF')

End


-- 检查指定数据库中的所有对象的分配和结构完整性

Begin

dbcc checkdb('OA_DB')

End


-- 设置数据库为正常状态

Begin
sp_dboption 'OA_DB', 'dbo use only', 'false'

End


-- 不允许对系统目录直接修改

Begin
sp_configure 'allow updates',0
GO
reconfigure with override
GO

End

 

(注:执行前先进行分析,如出现异常则根据Begin-End分段执行即可~)

你可能感兴趣的:(sql,数据库,服务器,database)