无法打开数据库,因为它是版本706

时间:2016-04-08 12:35:49

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

我遇到的问题是我使用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中的错误或意外行为

1 个答案:

答案 0 :(得分: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文件旧版本。