(高分)附加数据库的时候出现"所指定的文件不是有效的SQL Server数据库文件"请问如何解决?

2024-12-12 15:17:37
推荐回答(5个)
回答1:

你本机的数据库版本比你这个主数据文件的版本低
所以报错
建议楼主升级你自己的数据库
也可以直接安装高版本的数据库
你可以在你要附加的数据库服务器上执行select
@@version
查看一下版本信息
然后安装这个版本或更高的版本
有什么问题可以上网随时找我
希望采纳

回答2:

一般的数据恢复软件恢复出来的发部分文件都是混乱的,重写文件头也不太可能正常使用,如果是非常重要的数据就找专业的数据恢复部门吧。。。

回答3:

我想硬盘恢复工具恢复的数据一定坏了,非NTFS文件系统恢复的数据经常是坏的(NTFS恢复出完整的数据的机率大一点)。我经常也为这烦恼。~~

用移花接木的方法重写文件头试试看。

回答4:

新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建的数

据库文件,启动数据库,该数据库被设未suspect

然后把数据库改成紧急模式:
sp_configure 'allow', 1
reconfigure with override
update sysdatabases set status = 32768 where name = '数据库名'

把LDF文件改名,再执行
DBCC REBUILD_LOG ('数据库名', 'E:\fdzz\database\fdzz1204_Log.LDF' )

恢复数据库紧急模式
update sysdatabases set status = 0 where name = '数据库名'
执行
restore database 数据库名 WITH RECOVERY
sp_configure 'allow', 0
reconfigure with override

然后用DBCC CHECKDB ('数据库名')看看有没有错误

如果上面还是不行,试试吧数据库设为紧急模式,应该可以看到数据了,在把数据导出到一个新的数据库

回答5:

新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建的数

据库文件,启动数据库,该数据库被设未suspect

然后把数据库改成紧急模式:
sp_configure 'allow', 1
reconfigure with override
update sysdatabases set status = 32768 where name = '数据库名'

把LDF文件改名,再执行
DBCC REBUILD_LOG ('数据库名', 'E:\fdzz\database\fdzz1204_Log.LDF' )

恢复数据库紧急模式
update sysdatabases set status = 0 where name = '数据库名'
执行
restore database 数据库名 WITH RECOVERY
sp_configure 'allow', 0
reconfigure with override

然后用DBCC CHECKDB ('数据库名')看看有没有错误

如果上面还是不行,试试吧数据库设为紧急模式,应该可以看到数据了,在把数据导出到一个新的数据库

那就抱歉了,不知道了,郁闷!