附加数据库时出错。有关详细信息,请单击“消息”列中的超链接

附加数据库时出错。有关详细信息,请单击“消息”列中的超链接,第1张

一看你附加的版本,如果是高版本文件是不能附加到低版本的数据库服务器上的,比如SQL2005建立的数据库是不能附加到SQL2000上的,如果是低版本向高版本附加,注意选择下附加时候的设置,具体比如有强制附加等设置吧。二看看你要附加的文件是不是有特殊的登陆帐号,有的话先在数据库上加好在附加试试,希望对你有用,实在还不能在用soso搜下。

首先,SQL2005附加SQL2000的数据库这个 *** 作本身就不靠谱,出错的各种可能性非常多。

一般来说,推荐使用两种方法进行转换:

1· 使用数据库备份还原,在2000中备份成bak文件,到2005中还原,这个方法的成功率比直接附加大的多,但如果数据库中存在特殊性不兼容的结构,此方法也可能失败,这时候使用第二种方法;

2· 在2000中对数据库导出完整脚本(sql文件),在2005中创建一个空库,执行该脚本。并使用DTS导入数据。

上面提示的LDF错误,应该还可以尝试一下,因为是日志文件错误,可以啊2000中截断日志(LDF变成1M)后附加尝试,或者,删除LDF文件尝试,有可能成功。

出现这样的问题原因是你所使用的数据库版本没有创建mdf和ldf的版本高

由于Sql数据库是向前兼容的,即高版本兼容低版本,所以只能使用和创建数据库时一样的版本或者更高的版本来打开数据库,而不能使用低版本打开

举例说明:

创建数据库时使用的是2005,则只能在2008或2008等更高的版本里打开,而在2000中打开则会出现你这样的问题的

解决方案:

1在高版本的数据库中使用

2在高版本中导出数据库脚本,然后再在低版本中创建数据库

先把原库文件备份一份,然后

在其它机器上直接附加数据库,不要日志文件!试试!如果不行再按以下方法试试!

在其他机器上,用这个试试:

1设置数据库为紧急模式

Use Master

GO

sp_configure 'allow updates', 1

reconfigure with override

GO

UPDATE sysdatabases SET status = 32768 where name = 'DB_SUSPECT'

GO

2停掉SQL Server服务:

NET STOP MSSQLSERVER

3把原始数据库的数据文件DBNAME_DATMDF,DBNAME_LOGLDF移走:

4启动SQL Server服务:

NET START MSSQLSERVER

5重新建立一个同名的数据库DB_SUSPECT;

USE master

GO

CREATE DATABASE DB_SUSPECT

ON

( NAME = DBNAME_DAT,

FILENAME = 'C:',

SIZE = 10,

FILEGROWTH = 5 )

LOG ON

( NAME = 'DBNAME_LOG',

FILENAME = 'g:',

SIZE = 5MB,

FILEGROWTH = 5MB )

GO

6设置数据库运行在单用户的模式:

USE MASTER

GO

ALTER DATABASE DB_SUSPECT SET SINGLE_USER

GO

7停掉SQL服务:

NET STOP MSSQLSERVER

8把原来的数据文件再覆盖回来:

9启动SQL Server服务:

NET START MSSQLSERVER

10重新设置SQLSERVER的状态:

USE MASTER

GO

EXEC sp_resetstatus "DB_SUSPECT"

11数据库完整性检测:

DBCC CHECKDB('DB_SUSPECT')

12恢复数据库为多用户模式:

USE MASTER

GO

ALTER DATABASE DB_SUSPECT SET MULTI_USER

GO

13恢复SQLSERVER原始的配置:

USE MATER

GO

UPDATE sysdatabases SET status = 4194320 where name = 'DB_SUSPECT'

GO

14配置SQLSERVER不允许更新系统表:

USE MASTER

GO

sp_configure 'allow updates', 0

reconfigure with override

GO

15重新启动MSSQLSERVER服务:

最好重新启动 *** 作系统

16备份数据库:

可以通过SQLSERVER企业管理器或T-SQL需要备份MASTER和DB_SUSPECT

楼主好,首先,数据库只支持向下兼容的,也就是低版本的数据库可以附加还原到高版本的数据库上,但是反之则不行。剩下的就是windows权限问题了,修改方式很简单,我之前也附加不进去,事实上数据库附加,window系统中有个权限控制的,要改你要附加的数据库文件还有数据库日志文件的权限。具体做法是:

首先右键单击你的MDF文件,然后进入属性界面;

在安全选项卡中,你会看到如下图的提示,上面有个完全控制,附加不上去的数据库,完全控制是没有打勾的。然后选中你登录数据库使用windows验证的那个用户名,点击编辑,将完全控制选项勾上,然后应用,确定。就行了。我之前因为学习多维数据库的时候下载了一个源库,结果不能附加,这样弄一下就好了。

将要附加的文件拷贝到

SQL

Server

默认的

Data

目录,此时附加就会成功;

在登录验证时,选择“Windows

身份验证”,而不是“SQL

Server

身份验证”,即便你的登录帐号是

sa;

如果一定要使用“SQL

Server

身份验证”,请更改登录帐号的权限使其对要附加文件有完全 *** 作权限;

SQL

Server

服务的帐户登录身份由

Network

Service

改为

Local

Service;

这个提示是因为你附加的是高版本的

数据库文件

(比如SQL

Server

2005的

数据文件

),低版本数据库是不兼容高版本数据库的。如果真是2005的数据文件,需要附加到SQL

Server

2005数据库中,然后生成2000的脚本,在2000中执行。

以上就是关于附加数据库时出错。有关详细信息,请单击“消息”列中的超链接全部的内容,包括:附加数据库时出错。有关详细信息,请单击“消息”列中的超链接、SQL2005数据库附加出错,附加的数据库是SQL2000的、往数据库中附加.mdf文件时显示错误时什么原因等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9530282.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存