如何把高版本的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的降级。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-04-07
使用备份、还原,肯定不行。
可以通过在高版本的SSMS中,联接后,创建链接服务器,把数据导到旧版本中。

也可以直接使用导入导出的方法处理。本回答被提问者采纳
第2个回答  2016-04-26

sqlserver可以向下兼容, 一般低版本还原不了高版本的数据文件.

但是可以生成脚本 ,然后在低版本上面执行. 例入SqlServer2008 R2 中,选中相应的数据库

任务-->生成脚本

当然如果版本相差太多,比如SqlServer2000和SqlServer2012那么在存储过程和视图函数上语法会有不同, 执行脚本也会报错

第3个回答  2016-04-09

用用导入导出的功能吧。 这个方法关键是如何确保保留原有表结构的主键、外键等 分两个情况,对于数据库数据量小的,可以很方便的解决

 

    小数据的情况

 

     先在低版本的服务器上建立同名的数据库。

     在高版本的服务器上右键点击目标数据库->任务->生成脚本

    在选择对象->选择特定数据库对象

    选择表、视图、存储过程,然后下一步

    关键在这,这一步里,请选择”高级“,选项里选择[编写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 表名(字段))这样的语句,此处将表的外键附加上。

    。。大功告成

相似回答