将日志文件改个名,仅附加数据文件试试: 附加数据库: 企业管理器 --右键"数据库" --所有任务 --附加数据库 --选择你的.mdf文件名 --确定 --提示没有.ldf文件,是否创建,选择"是" 查询分析器中的方法: sp_attach_single_file_db '数据库名' ,'数据文件名(*.mdf注意要带目录)' --后面可以是用,分隔的该数据库的多个数据文件
再不行,创建一个同名的数据库. 停止SQL服务. 复制要附加的数据文件覆盖新建数据库的数据文件. 再启动SQL服务. 如果出现置疑,用下面的方法解决: /*--重置置疑状态 1.系统方法: 如果 sql server 因为磁盘驱动器不再有可用空间,而不能完成数据库的恢复, 那么 microsoft® sql server™ 2000 会返回错误 1105 并且将 sysdatabases 中的 status 列设为置疑。按下面的步骤解决这个问题: 执行 sp_resetstatus。 语法为: sp_resetstatus '数据库名' 用 alter database 向数据库添加一个数据文件或日志文件。 停止并重新启动 sql server。 用新的数据文件或日志文件所提供的额外空间,sql server 应该能完成数据库的恢复。 释放磁盘空间并且重新运行恢复操作。 sp_resetstatus 关闭数据库的置疑标志,但是原封不动地保持数据库的其它选项。 --*/ --2.手工重置置疑状态 use master go sp_configure 'allow updates',1 reconfigure with override go declare @dbname varchar(30) set @dbname='你要处理的数据库名' if @@trancount > 0 print '正在进行事务处理,操作不能进行' else if suser_id()!=1 print '你不是系统管理员(sa),不能进行此操作' else if not exists(select 1 from master..sysdatabases where name=@dbname) print '你要操作的数据库不存在' else if not exists(select 1 from master..sysdatabases where name= @dbname and status & 256 = 256) print '你的数据库没有被置疑' else begin begin tran update master..sysdatabases set status = status ^ 256 where name = @dbname if @@error != 0 or @@rowcount != 1 rollback tran else begin commit tran print '操作成功,请重新启动SQL' end end go sp_configure 'allow updates', 1 reconfigure with override go
我昨天刚刚帮人解决过这样的问题,现在给你发一个试试。 如附加报错的话: 停止数据库服务,将数据库文件“hlerp_Data.mdf”移动其它目录,再启动数据库服务,新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来移出去的文件替换新建的数据库文件,同时删除“hlerp_Log.Ldf"文件,启动数据库,该数据库“被设未suspect”(置疑) 在“企业管理器”——>“控制台根目录”——>“Microsoft SQL Servers”——>“SQL Server 组”——>“(local)(Windows NT)”上右击,在快速菜单上选择“属性”,然后选择“服务器设置”,把“服务器行为”下的“允许对系统目录直接进行修改(M)”左边的方框打钩。 然后把数据库改成紧急模式: sp_configure 'allow', 1 reconfigure with override update sysdatabases set status = 32768 where name = 'hlerp' (把LDF文件改名或删除)再执行 DBCC REBUILD_LOG ('hlerp', 'D:/Sqldata/MSSQL/Data/hlerp_Log.LDF' ) 恢复数据库紧急模式 update sysdatabases set status = 0 where name = 'hlerp' 执行 restore database hlerp WITH RECOVERY exec sp_configure 'allow', 0 reconfigure with override 然后用DBCC CHECKDB ('hlerp')看看有没有错误