【问题标题】:The database cannot be opened because it is version 706数据库无法打开,因为它是 706 版本
【发布时间】:2016-04-08 21:04:55
【问题描述】:

我有一个问题,我正在使用 Visual Studio 2013 创建一个 MDF 文件,然后按照本教程中的描述打开它:

creating-the-membership-schema-in-sql-server

但是当我尝试将数据库附加到 MSSQLServer 时,我收到错误 948,它基本上说:

无法打开数据库,因为它是版本 706。此服务器 支持 663 及更早版本。

我看过这两篇文章:

The database cannot be opened because it is version 782. This server supports version 706 and earlier. A downgrade path is not supported

The database cannot be opened because it is version 706. (ASP.net)

由此假设可以将“Visual Studio”切换到不同的 SQL Server 版本。所以我可以删除我的旧文件,创建一个新文件(在 vS2013 中),然后将它附加到我的 SQlServerExpress。

我可以切换下

工具-> 选项-> 数据库工具-> 数据连接

到 SQL 版本 (LocalDB)\v10.0 ?如果是这样,是否有任何理由不切换,因为它可能导致 VS2013 中的错误或意外行为

【问题讨论】:

  • 经典错误(这意味着有人使用较新的版本创建/(或更新)数据库,然后您可以支持)除了升级之外,您无能为力。 (最简单的解决方案总是将数据库挂载/连接到 SQL 服务器并使用连接字符串并通过它连接到它)
  • 我想知道是否可以从 Visual Studio 创建一个不同版本的新 mdf 文件
  • 是的。右键 -> 添加 -> 数据库文件(虽然它会是空的,你应该先看看 EntityFramework Code Migration

标签: c# asp.net sql-server database


【解决方案1】:

创建数据库时,可以指定兼容版本。这会关闭在较新版本的 SQL Server 中可用的功能,但如果您只有一个用于身份验证的数据库,则不太可能使用这些功能。

您的问题服务器中似乎只有 SQL Server Express 版本 2008 R2(应用了一些补丁)。要创建兼容版本的数据库,您必须经过许多步骤 (full article):

  • 备份您当前的数据库
  • 在数据库管理器中,右键单击并选择“生成脚本”任务:
    • 编写整个数据库的脚本
    • 保存到文件并选择目标路径,选择 Unicode 文本文件
    • 选择以下高级选项:
    • 服务器版本脚本:SQL Server 2008 R2
    • 脚本的数据类型:架构和数据
    • 脚本外键:true
    • 脚本索引:true
  • 连接到 SQL Server 2008 R2 实例(重要)
  • 运行您生成的脚本以重新创建降级版本中的数据库和数据(您可能需要更正脚本顶部的数据库名称)
  • 获取生成的 MDF 文件并将其合并到您的应用程序中

较新的数据库可以使用较旧的 MDF 文件(在合理范围内,Server 2012 不会比 2008 更早使用),但它无法创建与较旧版本兼容的 MDF 文件。

【讨论】:

  • 从您的第一句话开始,我假设您希望我从 SQL 管理工作室创建 mdf 文件?
  • 这样会最简单。
  • 是的,看起来是这样。我希望我可以从 Visual Studio 中创建文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
  • 1970-01-01
相关资源
最近更新 更多