2014-01-05 75 views
0

我有两个名为.mdf.ldf的数据库文件,它们是在SQL Server 2012中创建的,现在在我的电脑上安装了Visual Studio 2010和SQL Server 2008 Express 。如何在SQL Server 2012中创建的SQL Server 2008中附加数据库

当我尝试将这些数据库文件附加到SQL Server 2008时,它给我错误。

The database 'C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL10.SQLEXPRESS\MSSQL\DATA\CMS_DB.MDF' cannot be opened because it is version 706. This server supports version 655 and earlier. A downgrade path is not supported. Could not open new database 'C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL10.SQLEXPRESS\MSSQL\DATA\CMS_DB.MDF'. CREATE DATABASE is aborted.
An attempt to attach an auto-named database for file C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\CMD_DB.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

当打开数据库SSMS中2008年则错误:

Attach database failed for Server 'MATRIX-PC\SQLEXPRESS'. (Microsoft.SqlServer.Smo)
Additional information:
An exception occured while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
The database 'C:\USERS\RAJ\DESKTOP\COLLEGE MANAGEMENT SYSTEM(.NET 4.5)\ COLLEGE MANAGEMENT SYSTEM\BIN\DEBUG\CMD_DB.MDF' cannot be opened because it is version 706.
This server supports version 655 and earlier. A downgrade path is not supported.
Could not open new database 'C:\USERS\RAJ\DESKTOP\COLLEGE MANAGEMENT SYSTEM(.NET 4.5)\COLLEGE MANAGEMENT SYSTEM\BIN\DEBUG\CMD_DB.MDF'. CREATE DATABASE is aborted.
(Microsoft SQL Server, Error: 948)

+0

你**不能**这样做 - 你**不能**附加/分离或备份/从**更新的**版本的SQL Server恢复到**更旧的**版本。只是**不能**完成。 –

+0

真的,没有办法解决这个问题。如果有的话,然后指导我。 – argciv

+0

解决方案是在所有平台上使用**相同版本的SQL Server;为什么不直接在本地PC上下载并安装SQL Server ** 2012 ** Express? –

回答

0

不行,你只能往前走。

这意味着,您可以将数据库从2005或2008还原到2012版本,但不能以相反顺序执行。我收到的下一个最受欢迎的问题是,如果我们无法将SQL Server 2012数据库恢复到早期版本,那么下一个最佳选择是什么?

我曾经亲自面对过这个问题,并且我已经在SQL Server 2012中使用脚本和数据生成器向导手动创建了T-SQL脚本,并在 SQL Server 2008R2中重建了我的数据库。如果您有许多不同的数据库需要解决,您可以使用SSIS到 自动生成脚本。

+0

视频在哪里? – argciv

0

如您想从2008年访问2012年的数据库一样,您必须将数据库迁移回2008年。这只有在数据库中没有使用2012特定功能的情况下才有可能。如果您已经并且仍然想执行迁移,那么您应该先尝试确定它们发生的位置并首先解决它们。

如上所述,一个选项是生成T-SQL脚本并使用它们在2008年重新生成数据库。但是对于大型数据库来说,这可能会耗费时间并且难以实际工作。

比使用SSMS脚本向导更好的选择是使用Codeplex上提供的名为SQL数据库迁移向导的类似工具 - http://sqlazuremw.codeplex.com/releases/view/32334。您希望最新版本v4.x与SQL Server 2012配合使用。

该工具最初旨在用于在SQL Server和Azure之间迁移数据库。但是,该工具在SQL Server 2012和SQL Server 2008之间也可以正常工作。技巧是将SQL Server而不是Azure设置为高级选项中的目标。

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

相关问题