来源: 高版本数据库附加到低版本解决办法 – 党鹏飞 – 博客园
在我们使用别人导出的数据库的时候,有时候我们会通过附加数据库的方法,把别人导出的数据库附加到我们的电脑中,这时,或许你会遇到这种问题,附加时,提示版本为XXX,无法打开,支持AAA版本。
这是怎么回事呢?
原来,版本号是指SQL Server的版本号,例如版本号661是SQL Server 2008 R2,版本号655是SQL Server 2008 等。它拥有向上兼容的特点。由此可见,标题的意思就是说,你要附加的数据库,只能在SQL Server 2008 R2及更高版本上运行,不能在SQL Server 2008 上运行,那么,我们该怎么处理这个问题呢?
处理这种问题,有很多种方法,下面我就说一个我查到并使用的方法,仅供参考,如果有更好的方法,欢迎沟通。
1.把这个数据库附加到装有SQL Server 2008 R2的数据上。
2.打开Management Studio,登录到服务器,在数据库中选择要转移的数据库,右键--“任务(T)”--“生成脚本(E)…”。
3.在“生成和发布脚本”窗口中,点击“下一步”
4.“选择要编写脚本的数据库对象”,可以不做设置,点击“下一步”
5.点击[保存到文件]右边的“高级”按钮,在对话框中,设置“为服务器版本编写脚本”为“SQL Server 2008”,设置“要编写脚本的数据的类型”为“架构和数据”。选择保存脚本的位置
6.下一步,再下一步。导出完成
把导出完成的程序,在放到SQL Server 2008 中,按下面步骤:
1.打开Management Studio,登录到服务器
2.选择菜单“文件”——“打开”——“文件”,选择.sql脚本文件,点击工具栏中的“执行”按钮
3.在左侧的“对象资源管理器”中右键“数据库”——“刷新”
到此为止,“版本号661,无法打开,支持655版本及其以下版本……”这个错误就算是解决了。当然,如果你直接把数据库卸载,在装SQL Server 2008R2 , 也是可以完美解决这个问题的。
版本655指的是SQL2008, 版本611指的是SQL2005, (还有一个版本539指的是SQL2000)
楼主的情况属于典型的从高版本降低至低版本使用的情景.
按微软的官方说法, 是不支持从高版本附加到低版本的.
如果一定要这么做, 那怎么办呢? 有办法.
首先, 找一台装有SQL Server 2008的电脑, 将你的数据库文件附加到这台电脑里.
附加成功后, 在SSMS的对象资源管理器窗口右键单击刚刚附加的数据库,依次选”任务>生成脚本…”, 此时会弹出脚本向导对话框.
点”下一步”.
在”选择数据库”对话框选中刚刚附加的数据库, 同时将底部的”为所选数据库中的所有对象编写脚本”打勾. 点下一步.
在”选择脚本选项”对话框中,还需要修改以下几个选项:
1).”编写数据的脚本”,设为”True”; (SQL2005没有这个选项,所以才要找一台装有SQL2008的电脑嘛,多省事啊,省去了数据导入导出的麻烦)
2).”编写触发器脚本”,设为”True”;
3).”编写创建数据库的脚本”,设为”True”;
4).”为服务器版本编写脚本”,选”SQL Server 2005″;(如果是要用的SQL2000中,那就选SQL Server 2000)
以上4个选项是非常建议这样设置的,其他的选项就自己看着办,其他的一般也不用改. 点下一步.
在”输出选项”对话框中,选”将脚本保存到文件”,其他默认,点下一步.
点完成.
点关闭.