我有两个名为.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)
发布于 2014-01-05 09:53:13
不,你只能向前看。
这意味着,您可以从2005年或2008年到2012年版本恢复数据库,但不能按相反顺序进行。我收到的下一个最流行的问题是,如果我们不能将Server 2012数据库恢复到早期版本,那么接下来的最佳选择是什么?
我曾经亲自面对过这个问题,我使用SQL Server 2012中的脚本和数据生成器向导手动创建了this脚本,并在SQLServer2008R2中重新构建了我的数据库。如果您有许多要处理的不同数据库,则可以使用SSIS自动生成脚本。
发布于 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的数据库,大部分时间都是在机器工作时喝茶的。重要的是,这一切只是不需要我开始编辑文件来修复问题,如太多的命令,超时等。
https://stackoverflow.com/questions/20932162
复制相似问题