由于数据库版本为782,因此无法打开。该服务器支持版本706和更早版本。不支持降级路径


84

我已使用SQL Server 2014 Express创建示例数据库,并将其添加到Windows窗体解决方案中。双击它打开时,出现此错误。

由于数据库版本为782,因此无法打开。该服务器支持版本706和更早版本。不支持降级路径

我使用的是Visual Studio2013。我真的不明白我使用的是Microsoft产品的两个最新版本,它们不兼容。我想念什么吗?如何打开该数据库?

在此处输入图片说明


2
您需要将Visual Studio指向SQL Server 2014实例。并不是两者是不兼容的,而是Visual Studio默认使用其2012实例,并且不支持2014年以来的数据库。它使用2012作为默认实例的原因:当Visual Studio 2013时,SQL Server 2014不存在被释放。
亚伦·伯特兰

@AaronBertrand谢谢。如何将VS指向我的SQL Server2014。是否有任何链接可以指导?
Omer K

5
当然,只需停止将Visual Studio(和您的应用程序)指向文件(使用AttachDBFileName)。假设数据库已经在您的本地.\SQLEXPRESS实例上连接,只需更改连接字符串以指向该服务器(Data Source=.\SQLEXPRESS;Initial Catalog=OMERDENEME;...)并停止使用AttachDBFileName
亚伦·伯特兰

Answers:


141

尝试改变Tools> Options> Database Tools> Data Connections> SQL Server Instance Name

VS2013的默认值为(LocalDB)\v11.0

(LocalDB)\MSSQLLocalDB例如,更改为似乎可行-不再出现782版本错误。


2
我在Visual Studio 2013 Express for Web和Entity Framework 6中遇到了类似的问题。EF会自动创建MDF文件,但使用时我无法从VS连接(LocalDB)\v11.0。更改服务器名称以(LocalDB)\MSSQLLocalDB使有关版本#的错误消失。
wrschneider 2015年

3
我还必须将web.config文件中的连接字符串更改为(LocalDB)\ MSSQLLocalDB
Roger Harvest

11
在VS Studio 2015中,默认值为(LocalDB)\ MSSQLLocalDB。因此,在这种情况下这
无济于事

2
更改上述设置后,我不得不重新启动Visual Studio
Manoj Attal 2015年

1
@坤药王庙,通过usefulBee上面提到的评论工作对我来说,我使用VS 2015
马诺Attal

10

尝试更改兼容性级别,为我工作。

验证它是什么级别

USE VJ_DATABASE;
GO
SELECT compatibility_level
FROM sys.databases WHERE name = 'VJ_DATABASE';
GO

然后使其与旧版本兼容

ALTER DATABASE VJ_DATABASE
SET COMPATIBILITY_LEVEL = 110;   
GO
  • 100 = SQL Server发行日为2008
  • 110 = SQL Server 2012
  • 120 = SQL Server 2014年

默认情况下,Sql Server 2014使用以下命令将数据库版本兼容性更改为仅2014版本: @@ version您应该能够知道Sql Server的版本。

然后运行上面的命令以更改它的版本。

附加步骤:确保您查看的数据库的可访问性未重置,请通过右键单击文件夹和数据库的属性来执行此操作。(确保您具有权限,以免访问被拒绝)


2

对我来说,使用Codedom提供的解决方案。在这里,我们只能更改现有数据库的兼容性版本。

但是实际问题在于,内部数据库版本由于存储格式的更改而无法匹配。

在此处查看有关SQL Server版本及其内部数据库版本和Db兼容性级别的更多详细信息, 因此,如果您使用SQL Server 2012 Express版本或以下版本创建数据库,那将是很好的。或开始使用Visual Studio 2015预览版。


2

此解决方案解决了我的问题:(来自:https : //msdn.microsoft.com/zh-cn/library/ms239722.aspx

从“数据连接”节点永久附加数据库文件(.mdf)

  1. 打开“数据连接”的快捷菜单,然后选择“添加新连接”。

    出现“添加连接”对话框。

  2. 选择更改按钮。

    出现“更改数据源”对话框。

  3. 选择Microsoft SQL Server,然后选择确定按钮。

    重新出现“添加连接”对话框,并在“数据源”文本框中显示Microsoft SQL Server(SqlClient)

  4. 在“服务器名称”框中,键入或浏览到SQL Server本地实例的路径。您可以键入以下内容:

    • “。” 用于计算机上的默认实例。
    • SQL Server Express LocalDB的默认实例为“(LocalDB)\ v11.0”。
    • SQL Server Express的默认实例为“。\ SQLEXPRESS”。

    有关SQL Server Express LocalDB和SQL Server Express的信息,请参阅“本地数据概述”

  5. 选择“使用Windows身份验证”或“使用SQL Server身份验证”

  6. 选择“附加数据库文件”,“浏览”,然后打开一个现有的.mdf文件。

  7. 选择确定按钮。

    新数据库出现在服务器资源管理器中。在您明确分离它之前,它将一直连接到SQL Server。


1
这个解决方案对我有用。我在工具-选项-数据库工具->数据连接-> sql服务器名称=(LocalDB)\ MSSQLLocalDB中更改了Vs2012默认连接设置。然后执行上述步骤。在第4步中,我以(LocalDB)\ MSSQLLocalDB输入ny sql 2014实例名称。一切都很好。多谢兄弟。
阿卜杜勒·哈马

1

另一种解决方案是,当您从例如Sql Server Manager 2014中“导出”数据库时,将数据库迁移到例如2012。这是在菜单Tasks->右键单击DB时生成脚本中完成的。只需遵循以下说明:

https://www.mssqltips.com/sqlservertip/2810/how-to-migrate-a-sql-server-database-to-a-lower-version/

它会生成包含所有内容的脚本,然后在您的SQL Server管理器中(例如2012)按照说明中的说明运行脚本。我已经成功完成了测试。


0

我使用VS2017。默认情况下,SQL Server实例名称为(LocalDB)\ MSSQLLocalDB。但是,按照@ user3390927的答案将数据库的兼容性级别降级到110,我可以将数据库文件附加到VS中,选择“服务器名称”为“ localhost \ SQLExpress”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.