首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Server 2012中创建的Server 2008中附加数据库

如何在Server 2012中创建的Server 2008中附加数据库
EN

Stack Overflow用户
提问于 2014-01-05 09:49:05
回答 2查看 3.7K关注 0票数 0

我有两个名为.mdf.ldf的数据库文件,它们是在Server 2012中创建的,现在在我的pc上安装了Visual 2010和SQLServer2008Express。

当我试图将这些数据库文件附加到Server 2008时,会出现错误。

数据库‘C:\程序文件\MICROSOFT SERVER\MSSQL10.SQLEXPRESS\MSSQL\DATA\CMS_DB.MDF’无法打开,因为它是706版本。此服务器支持655及更高版本。不支持降级路径。无法打开新数据库C:\PROGRAM\MICROSOFT SERVER\MSSQL10.SQLEXPRESS\MSSQL\DATA\CMS_DB.MDF'.CREATE数据库被中止。 试图为文件C:\Program \Microsoft Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\CMD_DB.mdf附加一个自动命名的数据库失败.存在同名的数据库,或者无法打开指定的文件,或者位于UNC共享上。

在ssms 2008中打开数据库时,会出错:

附加数据库服务器‘矩阵-PC\SQLEXPRESS’失败。(Microsoft.SqlServer.Smo) 其他信息: 执行Transact-SQL语句或批处理时发生异常。(Microsoft.SqlServer.ConnectionInfo) 数据库‘C:\USERS\RAJ\桌面\学院管理系统(.NET 4.5)\学院管理SYSTEM\BIN\DEBUG\CMD_DB.MDF’无法打开,因为它是706版本。 此服务器支持655及更高版本。不支持降级路径。 无法打开新的数据库‘C:\USERS\RAJ\桌面\学院管理系统(.NET 4.5)\学院管理系统\BIN\DEBUG\CMD_DB.MDF’。CREATE数据库被中止。 (Microsoft SQL Server,错误: 948)

EN

回答 2

Stack Overflow用户

发布于 2014-01-05 09:53:13

不,你只能向前看。

这意味着,您可以从2005年或2008年到2012年版本恢复数据库,但不能按相反顺序进行。我收到的下一个最流行的问题是,如果我们不能将Server 2012数据库恢复到早期版本,那么接下来的最佳选择是什么?

我曾经亲自面对过这个问题,我使用SQL Server 2012中的脚本和数据生成器向导手动创建了this脚本,并在SQLServer2008R2中重新构建了我的数据库。如果您有许多要处理的不同数据库,则可以使用SSIS自动生成脚本。

票数 0
EN

Stack Overflow用户

发布于 2014-02-05 20:02:07

如前所述,如果您想从2008年开始访问2012年db,则必须将数据库迁移回2008年。只有当您没有在db中使用特定于2012年的功能时,这才是可能的。如果您已经并且仍然希望执行迁移,您应该首先尝试确定它们发生的位置,并首先修复这些迁移。

如上所述,一个选项是生成the脚本,并使用它们在2008年重新生成db。然而,对于一个大型数据库来说,这可能是一项耗时而艰苦的工作。

一个比使用SSMS脚本向导更好的选择是使用Codeplex上类似的工具,称为http://sqlazuremw.codeplex.com/releases/view/32334。您希望使用最新版本的v4.x来使用Server 2012。

该工具最初用于在Server和Azure之间迁移数据库。但是,该工具在Server 2012和Server 2008之间工作得同样好。诀窍是将Server而不是Azure设置为高级选项中的目标。

这是一个比SSMS脚本向导更好的选择,因为它使用BCP进行数据传输,而不是TSQL,因此效率要高得多。我用它在大约2小时内迁移了一个7GB的数据库,大部分时间都是在机器工作时喝茶的。重要的是,这一切只是不需要我开始编辑文件来修复问题,如太多的命令,超时等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20932162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档