SQL Server 数据库从高版本附加到低版本

大家都知道Microsoft的大部分软件都是向下兼容的/向后兼容(高版本支持低版本的或者说后期开发的版本支持和兼容早期开发的版本),SQL Server数据库也不例外,最近刚好遇到需要把数据库从SQL Server 2012数据添加到SQL Server 2008中,这里查了相关的资料,已成功将数据库及表中的数据添加到SQL Server 2008中,写下此文以供有需要的童鞋参考,不足之处敬请拍砖。


一.在旧版本的数据库中生成所需数据库的结构及表结构

这里方法有很多,这里推荐sql脚本的方式,先从新版本的数据库上生成SQL脚本
《SQL Server 数据库从高版本附加到低版本》

《SQL Server 数据库从高版本附加到低版本》

《SQL Server 数据库从高版本附加到低版本》

《SQL Server 数据库从高版本附加到低版本》

《SQL Server 数据库从高版本附加到低版本》

《SQL Server 数据库从高版本附加到低版本》

《SQL Server 数据库从高版本附加到低版本》
《SQL Server 数据库从高版本附加到低版本》
《SQL Server 数据库从高版本附加到低版本》
《SQL Server 数据库从高版本附加到低版本》
《SQL Server 数据库从高版本附加到低版本》

把脚本保存起来,然后在SQLServer2008中运行脚本。

期间因为版本跨度的大小可能有些错误,需要修改出来,这次我遇到了2个问题
第一个问题:
《SQL Server 数据库从高版本附加到低版本》
我将路径改成了2008的路径C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\……提示我没有权限,该问题主要是SQL登录的账户权限问题,我默认的是Network Service,将其内置帐户选择”Local System”,点击重新启动就OK了
《SQL Server 数据库从高版本附加到低版本》

《SQL Server 数据库从高版本附加到低版本》

《SQL Server 数据库从高版本附加到低版本》

第二个问题:

CREATE USER [aa] FOR LOGIN [aa] WITH DEFAULT_SCHEMA=[dbo]



提示我用户创建失败,稍微修改下:
CREATE LOGIN [aa] WITH PASSWORD = ‘aa’;
CREATE USER [aa] FOR LOGIN [aa] WITH DEFAULT_SCHEMA=[dbo]



执行即可,可以在管理器中看到已经将表结构都生成出来了。


二.将数据导入到旧数据库中,用自带的导入即可实现

因为我2012和2008都是64位的,所以选择64位导入

在2008的开始菜单上选择导入和导出数据(64位)
《SQL Server 数据库从高版本附加到低版本》《SQL Server 数据库从高版本附加到低版本》

《SQL Server 数据库从高版本附加到低版本》

《SQL Server 数据库从高版本附加到低版本》

选择2012上要导出的数据库
《SQL Server 数据库从高版本附加到低版本》

《SQL Server 数据库从高版本附加到低版本》

选择2008上刚刚生成的数据库
《SQL Server 数据库从高版本附加到低版本》

《SQL Server 数据库从高版本附加到低版本》

《SQL Server 数据库从高版本附加到低版本》

《SQL Server 数据库从高版本附加到低版本》

《SQL Server 数据库从高版本附加到低版本》

如果表中的字段是关键字,记得选中该表,单击编辑映射
《SQL Server 数据库从高版本附加到低版本》

《SQL Server 数据库从高版本附加到低版本》

《SQL Server 数据库从高版本附加到低版本》

勾选“启用标识符插入”,编辑完所有表后单击“确定”
《SQL Server 数据库从高版本附加到低版本》

《SQL Server 数据库从高版本附加到低版本》《SQL Server 数据库从高版本附加到低版本》《SQL Server 数据库从高版本附加到低版本》

如果有表数据有问题,那记下失败的那几张表,再来一次,检查相应的字段
《SQL Server 数据库从高版本附加到低版本》

    原文作者:fang16388
    原文地址: https://blog.csdn.net/fang16388/article/details/50996628
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞