SQL Server 2008附加数据库时出错的解决方法
时间:2014-08-08 csdn博客 胡玉洋
大家可以看到,上面的才是作者,我只是搬运工,备一个到自己的博客我觉得对一个刚接触数据库的人来说能有很大的帮助,请支持原版,欢迎去原链接去学习
http://www.bianceng.cn/database/SQLServer/201408/43556.htm
马上就要开始做机房收费系统了,想要了解系统的功能就得先了解前辈的数据库。在得到原数据库charge_sys.mdf和charge_sys.ldf 后,迫不及待地想要附加到SQL Server里。
不过问题来了,在附加数据库首要数据文件charge_sys.mdf 时,出现了“附加数据库出时出错。有关详细信息,请单击"消息"列中的超链接”的错误。如下图:

点击“消息”中的超链接之后,错误提示:

网上查了一下,出现这种错误(错误5120),很可能是因为权限问题,即我们现在的这个账户没有足够的权限来附加此数据库。那么下面这两种方法可以轻松地解决这个问题:
1、将要附加的文件拷贝到SQL Server默认的Data 目录(C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\),再次附加就会成功。
2、在登陆SQL Server时,选择“Windows身份验证”登陆。
但是到了这里还不能高兴的太早,因为有些版本的SQL Server还可能出现如下错误:

查看本栏目更多精彩内容:http://www.bianceng.cn/database/SQLServer/
错误中提示“数据库的版本为661,无法打开。此服务器支持655版及更低版本、不支持降级路径”。
这种情况是由于高版本的数据库文件在低版本的数据库上造成的,即我们要附加的数据库文件的版本高于当前SQL Server版本,这就相当于Word2010文档用Word2003打开时不兼容是一个道理。而目前就我知道的比较现实的方法有两种:
1、安装较高版本的SQL Server:2000升到2005或更高版本,2005升到2008或2008 R2,2008升到2008 R2;
2、种是在其他电脑上用较高版本的SQL Server附加,然后再导出脚本。
相比较而言还是生成脚本比较方便,所以第一种方法可以忽略,废话不多说,方法如下:
打开较高版本的SQL Server(这里以SQL Server 2008 R2为例),右键需要生成脚本的数据库:

出现生成脚本的简介页面:

单击下一步,出现选择对象界面,根据实际需要选择对象(这里以值生成表为例):

下一步,选择要生成脚本的位置,注意红色椭圆里的“高级”按钮:

既然做这些工作是自己电脑上SQL Server版本太低的原因,所以最重要的就是把“为服务器版本编写脚本”选项选为较低版本(这里选“SQL Server 2008”),其他按实际需要选择,确定:

下一步:

点击“完成”,大功告成!快去较低版本的SQL Server上导入你生成的脚本吧!不过在导入脚本之前不要忘了新建一个同名的空数据库哦(比如这个例子需要建立一个新的名为“charge_sys”的数据库)。
|