如何把高版本的SQLServer 还原到低版本的 sqlserver

微软的软件设计方案基本上都是新版本兼容旧版本,旧版本不兼容新版本。

所以,直接通过 【数据库备份】的.bak文件,来进行【数据库还原】的方式是不支持的。

方案一:直接使用生成的完整数据库sql来还原

                      {   仅用于小数据库(数据库完整导出的.sql文件小于100M)   }

整体思路:  通过新版本的SQLServer生成兼容低版本的.sql脚本,然后将sql脚本实现在低版本SQLServer上执行。从而创建数据库。

假设:需要实现的功能是 把sqlserver2016(2012)的数据库备份到sqlserver2012(2008),数据库名为Test,并且这两个数据库在不同的服务器上。

 1. 打开SQL Server Management Studio (下方简称SSMS),链接新版本的数据库服务器;

 2.  右键点击需要导出的数据库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的降级。 )

方案二:使用CMD命令 

        很多时候,我们的数据库比较大,通过数据库生成的.sql脚本(>100M)在SQL Server manager Studio(SSMS)中打开不了,提示“文件太大,无法打开” 。

        这时候,我们就需要通过命令行(cmd命令提示符)来执行sql脚本的还原数据库了。

       特别说明:-d 后面跟的数据库名称,必须是目标数据库中已经存在的数据库!!!请先在SqlServer中创建一个空白数据库。

   在开始菜单上右击,单击 “命令提示符(管理员)”打开  

   注意,如果脚本太大,可以关闭stderr消息,以加快执行速度。

前提:  备份数据库,生成sql脚本备用

    1. 右击数据库 –> 任务 –> 生成脚本。

    2. 在生成脚本的“选择对象”步骤选择“编写整个数据库及所有数据库对象的脚本选项”。下一步。

    3. 在生成脚本的“设置脚本编写选项”界面, 点击【高级】按钮进入高级选项。

       ●  设置 “编写USE DATABASE 脚本” 和 “架构限定对象名称” 选项为False;
       ●  并将“服务器版脚本” 选择为你的低版本数据库的版本。生成脚本。

    生成脚本完成。

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注