将日志文件改个名,仅附加数据文件试试:
附加数据库:
企业管理器
--右键"数据库"
--所有任务
--附加数据库
--选择你的.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')看看有没有错误