做网站网站,公司官网源码下载,商城建设网站,建设银行甘肃省分行网站缴费--附加数据库失败1.产生失败的原因比如有个数据库#xff0c;名叫HIMS,它的数据文件HIMS_Data.mdf和日志文件HIMS_Log.ldf,都放在路径c:/Program Files/Microsoft SQL Server/MSSQL/data/下。但是这个数据库天天跑日志#xff0c;会产生上G的日志#xff0c;现在通过企业管理…--附加数据库失败1.产生失败的原因比如有个数据库名叫HIMS,它的数据文件HIMS_Data.mdf和日志文件HIMS_Log.ldf,都放在路径c:/Program Files/Microsoft SQL Server/MSSQL/data/下。但是这个数据库天天跑日志会产生上G的日志现在通过企业管理器把数据库分离后在企业管理器直接附加数据文件HIMS_Data.mdf会产生如下错误----------------------------------------------------------------------------------------------------------------------------------------错误 1813: 未能打开新数据库 HIMS。CREATE DATABASE 将终止。设备激活错误。物理文件名 C:/Program Files/Microsoft SQL Server/MSSQL/data/HIMS_Log.ldf 可能有误。----------------------------------------------------------------------------------------------------------------------------------------从而无法将数据库正常附加到SQL Server 2000正常情况下这样操作是没有问题的SQL Server会重新生成日志文件但是因为之前出现了磁盘空间不足日志文件不完整从而造成了无法正常附加。
2.解决办法(1)通过企业管理器和SQL语句来解决1在企业管理器建立数据库HIMS这时在路径下C:/Program Files/Microsoft SQL Server/MSSQL/data/ 会产生两个文件HIMS_Data.mdf和HIMS_Log.ldf2停止SQL服务(即将电脑右下角SQLSERVER服务管理器停止)3在路径C:/Program Files/Microsoft SQL Server/MSSQL/data/下删除日志文件HIMS_Log.ldf将先前要附加的数据文件HIMS_Data.mdf替代现在的HIMS_Data.mdf4重新启动SQL服务在企业管理器中刷新发现HIMS数据库是置疑5在含有该HIMS数据库的SQLServer注册里(比如(LOCAL)(Windows NT))右键查看属性点击服务器设置将 服务器行为的第一项允许对系统目录直接进行修改 (M)的框打上勾6设置数据库未紧急修复模式 打开查询分析器在master数据库下执行语句update sysdatabases set status -32768 where dbid DB_ID(HIMS)7重建数据库日志文件 还在master数据库下执行语句dbcc rebuild_log(HIMS,C:/Program Files/Microsoft SQL Server/MSSQL/data/HIMS_Log.ldf) 这时会出现两种执行结果 A.如果出现下列描述则继续执行8以后的语句 警告: 数据库 HIMS 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项并且可能需要删除多余的日志文件。 DBCC 执行完毕。如果 DBCC 输出了错误信息请与系统管理员联系。 B.如果出现下列描述则重新从1执行 服务器: 消息 5030级别 16状态 1行 1 未能排它地锁定数据库以执行该操作。 DBCC 执行完毕。如果 DBCC 输出了错误信息请与系统管理员联系。8验证数据库一致性(该步骤可省略) 在master数据库下执行语句dbcc checkdb(HIMS)9设置数据库为正常状态 在master数据库下执行语句sp_dboption HIMS ,dbo use only,false10将步骤5中的勾去掉
(2)通过SQL语句来解决 前4步同方法(1)一样然后在查询分析器master数据库下执行下列语句 use master go sp_configure allow updates,1 reconfigure with override go update sysdatabases set status 32768 where name置疑的数据库名 go sp_dboption 置疑的数据库名, single user, true go dbcc checkdb(置疑的数据库名) go update sysdatabases set status 28 where name置疑的数据库名 go sp_configure allow updates, 0 reconfigure with override go sp_dboption 置疑的数据库名, single user, false go 完成后一般就可以访问数据库中的数据了。这时,数据库本身一般还有问题,解决办法是利用数据库的脚本创建一个新的数据库,然后通过DTS将数据导进去就行了.