马上就要开始重做机房收费系统了,想要了解系统的功能就得先了解之前的数据库。在得到原数据库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身份验证”登陆,然后再附加数据库就会成功。
3、右击将要附加的数据库文件,属性→安全→编辑,在“组合用户名”列表中选择Authenticated Users,在下方的权限列表中选择“完全控制”,确定。重新附加数据库就会成功(温馨提示:mdf文件和ldf文件都要这么设置哦!)
但是到了这里还不能高兴的太早,因为有些版本的SQL Server还可能出现如下错误:
错误中提示“数据库的版本为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”的数据库)。