为什么sql server 高版本的数据库不能附加低版本 mdf文件?

为什么sql server 高版本的数据库不能附加低版本 mdf文件?,第1张

是这样的,662是SQL Server 2008 SP2以后的数据库版本号,SP2之前的SQL Server 2008 \x0d\x0a的数据库版本好是655,而661是SQL Server 2008 R2的数据库版本号,本身SQL Server 2008 R2的版本要比SQL Server 2008 要高,按常理661版的数据库文件是不能附加到支持655版本号的SQL Server 2008里的。至于出现这个蛋疼的提示是因为微软在SQL Server 2008 SP2里加入了15k分区数的功能,而发布SP2之前就已经发布了SQL Server 2008 R2了,由于SQL Server 2008 R2 RTM并不支持15k分区的功能,如果按常规SQL Server 2008还保持655的版本号的话就可能会出现附加15k分区的数据文件到SQL Server \x0d\x0a2008 R2 RTM中,这肯定是不能附加的,所以微软为了解决这个难题,就打破常规,SQL Server 2008 SP2里将数据库的版本号改为662,这样,由SQL Server 2008 R2 RTM的数据库版本号比SQL Server 2008 SP2的低,所以自然就不能附加了,避免了麻烦,不过为了一15k分区的功能改变了版本号带来的副作用就像楼主这种情况了。\x0d\x0a这时问题的根本缘由。\x0d\x0a其实说白了,你是拿SQL Server 2008 R2的数据库附加到SQL Server 2008中,这肯定是不行的。要么将你现在的数据库实例升级到 SQL Server 2008 R2并安装最新的SP补丁之后再附加。要么将chat数据库附加到SQL Server 2008 R2版的数据库实例里,生成SQL Server 2008版的脚本文件,使用脚本文件部署到SQL Server 2008 SP2里。\x0d\x0a\x0d\x0a至于前边有朋友说用备份的方式,如果理解了我前边说的就知道肯定也是行不通的。

可以使用脚本来导出数据库的所有数据,然后去生成

点击完成就可以了,在低版本的服务器上先建立一个空的数据库,

最后把生成的数据库脚本执行。

数据库附加不上主要原因可能是:

1、数据库文件可能被损坏了。

2、数据库文件可能是较高版本的SQL SERVER创建的,在附加到较低版本的SQL SERVER上就会保存。

你点击那个“消息”的超链接,看一下具体错误信息是什么,对症下药,才能解决问题。


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

原文地址:https://54852.com/sjk/10088311.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存