如何把高版本的sqlserver 还原到低版本的 sqlserver
本例为sql2012 还原到sql2008。
要实现的功能是把sql2012的数据库备份到sql2008,数据库名字为Test,并且这两个数据库在不同的电脑中。
微软的软件设计方案基本上都是新版本兼容旧版本,旧版本不兼容新版本
步骤如下:
1、首先把要把sql2012中要备份的数据库设置为兼容2008。
右键sql2012中的数据库Test-属性-选项 看到如下图:
2、右键Test-任务-生成脚本,下一步-下一步到达下图,点【高级】选项。把【script for sql version】改成你要降级的那个版本 也就是【sql2008】。确定完成即可。会生成一个【script.sql】脚本文件。
3、下一步要把sqlserver2012源文件复制到另外一个电脑上。由于SqlServer正在运行是无法复制的。所以首先要【停止】sqlserver服务。
4、找到sql2012数据库在电脑中的位置。 右键【数据库】-【文件】会有路径,复制出这两个文件来。 至此sqlserver2012的电脑操作完成。
5、把上面得到的【script.sql】文件和两个数据源文件复制到sql2008所在的电脑中。在sql2008中【新建】-【查询管理器】。把【script.sql】拖进去,会看到代码。
注意绿色部分。此时显示的数据库文件位置是sql2012电脑的位置。需要把这两个地址改为 sql2008 中 复制过来的那两个源文件的地址即可。按【F5】键执行,即可完成数据库从SQL2012到SQL2008的降级。
可以通过在高版本的SSMS中,联接后,创建链接服务器,把数据导到旧版本中。
也可以直接使用导入导出的方法处理。
用用导入导出的功能吧。 这个方法关键是如何确保保留原有表结构的主键、外键等 分两个情况,对于数据库数据量小的,可以很方便的解决
小数据的情况
先在低版本的服务器上建立同名的数据库。
在高版本的服务器上右键点击目标数据库->任务->生成脚本
在选择对象->选择特定数据库对象
选择表、视图、存储过程,然后下一步
关键在这,这一步里,请选择”高级“,选项里选择[编写DROP和Create脚本]项的”编写DROP和Create脚本“,以及[编写脚本和数据类型]项的“架构和数据"
保存脚本
在低版本的数据库下执行脚本即可。
大数据情况 按理应该也可以通过类似包含架构和数据的方式来做,但是由于包含大数据的时候脚本文件太大,无法在分析器里执行,所以我们得绕一下。
1~4步和a情况相同
.这步我们选择”高级“,选项里选择[编写DROP和Create脚本]项的”编写DROP和Create脚本“,以及[编写脚本和数据类型]项的“架构"
保存脚本
在低版本的数据下执行脚本,注意(ALTER TABLE 表名 WITH CHECK ADD CONSTRAINT [外键名] FOREIGN KEY(字段) REFERENCES 表名(字段))这个先不要执行。
现在可以通过导入导出任务先将表的内容导入到低版本的数据库内
再执行脚本内(ALTER TABLE 表名 WITH CHECK ADD CONSTRAINT [外键名] FOREIGN KEY(字段) REFERENCES 表名(字段))这样的语句,此处将表的外键附加上。
。。大功告成