【问题标题】:How to attach database in SQL Server 2008 which was created in SQL Server 2012如何在 SQL Server 2012 中创建的 SQL Server 2008 中附加数据库
【发布时间】:2014-01-22 19:20:34
【问题描述】:

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

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

数据库 'C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL10.SQLEXPRESS\MSSQL\DATA\CMS_DB.MDF' 不能 因为是706版本所以打开。本服务器支持655版本 和更早。不支持降级路径。 无法打开新数据库 'C:\PROGRAM FILES\MICROSOFT SQL 服务器\MSSQL10.SQLEXPRESS\MSSQL\DATA\CMS_DB.MDF'。创建 DATABASE 已中止。
尝试为文件 C:\Program 附加自动命名的数据库 文件\Microsoft SQL 服务器\MSSQL10.SQLEXPRESS\MSSQL\DATA\CMD_DB.mdf 失败。一种 存在同名数据库,或无法打开指定文件, 或者它位于 UNC 共享上。

在 ssms 2008 中打开数据库时出现错误:

为服务器“MATRIX-PC\SQLEXPRESS”附加数据库失败。 (Microsoft.SqlServer.Smo)
附加信息:
执行 Transact-SQL 语句或批处理时发生异常。 (Microsoft.SqlServer.ConnectionInfo)
无法打开数据库“C:\USERS\RAJ\DESKTOP\COLLEGE MANAGEMENT SYSTEM(.NET 4.5)\COLLEGE MANAGEMENT SYSTEM\BIN\DEBUG\CMD_DB.MDF”,因为它是 706 版。
此服务器支持版本 655 及更早版本。不支持降级路径。
无法打开新数据库“C:\USERS\RAJ\DESKTOP\COLLEGE MANAGEMENT SYSTEM(.NET 4.5)\COLLEGE MANAGEMENT SYSTEM\BIN\DEBUG\CMD_DB.MDF”。 CREATE DATABASE 已中止。
(Microsoft SQL Server,错误:948)

【问题讨论】:

  • 不能执行此操作 - 您不能较新版本的 SQL Server 附加/分离或备份/恢复降到版本。只是不能完成。
  • 真的,没有办法解决这个问题。如果有任何方法,请指导我。
  • 解决方案是在所有平台上使用相同版本的SQL Server;为什么不直接在本地 PC 上下载并安装 SQL Server 2012 Express?
  • 好的。谢谢。我将下载 SQL Server 2012 Express..
  • 如果您使用更高版本的某些功能,您可能会遇到快速版本的问题...sqlmag.com/blog/…

标签: sql-server-2008


【解决方案1】:

不行,你只能往前走。

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

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

【讨论】:

    【解决方案2】:

    如前所述,如果您想从 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 的数据库,其中大部分时间都花在了机器工作时喝茶上。重要的是,这一切都不需要我开始编辑文件来解决命令过多、超时等问题。

    【讨论】:

      猜你喜欢
      • 2015-01-18
      • 2012-09-27
      • 1970-01-01
      • 2013-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多