常用SQLServer的朋友,一般都是从低版本升级到高版本,在某些情况下,跨了版本的可能还无法升级,比如从SQLServer2000的数据库、升级到SQLServer2012及之后的,都要采用另类曲线方式。
笔者曾写过一篇《如何从SQLServer2000升级到2016?》,若有需要,您不妨一看。
在某些特殊情况下,我们很可能需要把高版本的数据库移植到低版本的数据库,这就更难了。我们都知道,数据库一般是从低向高兼容的,升上去容易、退回去可就难了,人家微软也从来没有承诺过可以从高版本降级到低版本。
如果您确实有这种需求,方法总还是有的,不知大家是否记得,SQLServer有一个导出数据库脚本的功能,如果我们把数据库所有对象(表、视图、存储过程、自定义函数等)和数据都导出成SQL脚本,那降级是不是就容易多了啊?
废话少说,如果您有这类需求,下面的方法您不妨一试。
如下图所示,选中需要降级的数据库,单击鼠标右键,选择任务、生成脚本:
此时系统弹出选项窗口,单击【选择对象】选项卡,选择对象设置为将整个数据库导出脚本。如下图所示:
当然,您也可以根据需要导出,比如只导出导出表和视图、存储过程或自定义函数等。如果您只想导出某几个表的内容,可以选中【选择具体的数据库对象】,然后展开下面的表,将需要导出的表打勾,这样导出的就是这些表的创建脚本和数据插入脚本了。
如下图所示:
因为我们想要导出整个数据库,所以按照前一个选项为准。
接着,我们再选择左侧选项卡的【设置脚本编辑选项】,设置脚本导出的格式。导出格式可以是SQL脚本文件,也可以直接导出到查询分析器中。如下图所示:
然后单击【下一步】,再单击【完成】按钮,系统就开始生成脚本了,如下图所示:
导出了脚本,我们在低版本数据库的管理器中打开,执行脚本即可。如果碰到有不兼容的SQL语法,稍作调整再执行即可。
如果您希望将SQLServer数据库移植到MySQL、PostgreSQL,这种方法也是不错的。您可以先导出脚本,再根据不同数据库的语法风格,对脚本做一下调整即可。
希望对您有所帮助!