SQL Server 2008 附加数据库时出错

          马上就要开始做机房收费系统了,想要了解系统的功能就得先了解前辈的数据库。在得到原数据库charge_sys.mdf和charge_sys.ldf 后,迫不及待地想要附加到SQL Server里。

       不过问题来了,在附加数据库首要数据文件charge_sys.mdf 时,出现了“附加数据库出时出错。有关详细信息,请单击"消息"列中的超链接”的错误。如下图:

       SQL Server 2008 附加数据库时出错_第1张图片

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

       SQL Server 2008 附加数据库时出错_第2张图片

       网上查了一下,出现这种错误(错误5120),很可能是因为权限问题,即我们现在的这个账户没有足够的权限来附加此数据库。那么下面这几种方法可以轻松地解决这个问题:

       1、将要附加的文件拷贝到SQL Server默认的Data 目录(C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\),再次附加就会成功。

       2、在登陆SQL Server时,选择“Windows身份验证”登陆,然后再附加数据库就会成功。

       3、右击将要附加的数据库文件,属性→安全→编辑,在“组合用户名”列表中选择Authenticated Users,在下方的权限列表中选择“完全控制”,确定。重新附加数据库就会成功(温馨提示:mdf文件和ldf文件都要这么设置哦!)


      但是到了这里还不能高兴的太早,因为有些版本的SQL Server还可能出现如下错误:

       SQL Server 2008 附加数据库时出错_第3张图片

       错误中提示“数据库的版本为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 2008 附加数据库时出错_第4张图片

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

       SQL Server 2008 附加数据库时出错_第5张图片

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

       SQL Server 2008 附加数据库时出错_第6张图片

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

       SQL Server 2008 附加数据库时出错_第7张图片

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

       SQL Server 2008 附加数据库时出错_第8张图片

下一步:

       SQL Server 2008 附加数据库时出错_第9张图片

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

   

        

你可能感兴趣的:(sql,sql,server,server,2008,2008,R2,请单击消息列中的超链接,错误5120,附加数据,附加数据库出时出错有关详细信息)