Sql server 无法打开数据库,因为它是版本851。此服务器支持782及更早版本。不支持降级路径

Sql server 无法打开数据库,因为它是版本851。此服务器支持782及更早版本。不支持降级路径,sql-server,visual-studio-2013,sql-server-2014,Sql Server,Visual Studio 2013,Sql Server 2014,我正在尝试在SQL Server中附加数据库文件。我得到下面的错误。尝试从VisualStudio附加数据库时遇到相同的错误。我正在使用Visual Studio 2013和SQL Server 2014 Management Studio 我的连接字符串: <add name="Sample" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\M\Desktop\Sa

我正在尝试在SQL Server中附加数据库文件。我得到下面的错误。尝试从VisualStudio附加数据库时遇到相同的错误。我正在使用Visual Studio 2013和SQL Server 2014 Management Studio

我的连接字符串:

<add name="Sample"  
     connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\M\Desktop\SampleApplication1\App_Data\Sample.mdf;Initial Catalog=SampleDBContext;Integrated Security=True;" 
     providerName="System.Data.SqlClient"/>

下面是在VisualStudio中设置的默认SQL Server实例


无法执行此操作-您无法将数据库从较新版本的SQL Server连接/分离或备份/还原到较旧版本的SQL Server-内部文件结构太不相同,无法支持向后兼容性。显然,您的数据库来自SQL Server 2016预发行版(内部版本:852),而您尝试将其连接到的引擎是SQL Server 2014(内部版本:782)

你可以通过以下两种方法来解决这个问题

  • 在所有计算机上使用相同版本的SQL Server—这样您就可以轻松地在实例之间备份/恢复数据库

  • 否则,您可以在SQL Server Management Studio(
    Tasks>Generate scripts
    )或使用第三方工具为结构(表、视图、存储过程等)和内容(表中包含的实际数据)创建数据库脚本

  • 或者您可以使用第三方工具,如Red Gate,在源和目标之间进行“差异化”,根据这些差异生成更新脚本,然后在目标平台上执行这些脚本;这适用于不同的SQL Server版本


我在跟踪一个老客户时遇到了这个问题

课程要求我使用v11.0,但我运行的是2015版。我打开SQL Server对象资源管理器,查看不同版本的LocalDB,并抓取其中包含我的数据库的名称(右键单击“重命名”)

然后,我将该名称粘贴到“添加连接”窗口中的“服务器名称”下。点击刷新,瞧,它就在那里。希望这对任何人都有帮助

如果您仍在运行Visual Studio 2015并看到此错误,这可能会解决您的问题-以上答案是答案的一部分。(megamaiku)Mark_S给出的“生成脚本”答案将在您安装/访问数据库没有问题的情况下起作用。如果我记得SQL比较非常昂贵,但这是一个很好的解决方案,再次假设您可以装载由Visual Studio应用程序创建的数据库。
Visual Studio 2017和SQL Server 2017也出现了类似的问题,但您认为852/856是版本问题

移动数据库后,更改web.config connectionString以匹配服务器;(localdb)\MSSQLLocalDB或可能的localhost,具体取决于您正在运行的内容 (SQL 2016/2017/2019)



一篇老文章解释了如何一次一个地从数据库中提取数据块,如果你运气好,并且它仍然可以工作(它在十年前就已经完成了——将各个部分分开,然后重新组合在一起),那么你可能能够得到你需要的东西——一个更新的版本恢复到旧版本。我找不到该技巧的引用,但不是编写整个数据库的脚本,而是有一种方法可以通过还原标头(restore headeronly)来还原,然后,一旦标头在服务器上就位且权限等匹配,您就可以从较新的备份还原该数据库。

但是,生成脚本不那么复杂,而且更受欢迎。

+1,我将尝试按照第2点中的建议生成数据库脚本,而不是附加此数据库。实际上,这个数据库是在godaddy服务器上创建的。谢谢marc_。你是如何更新的,为什么在机器上会有所不同?我所做的就是在这两台机器上安装vs2015。这回答了我的问题
<add name="DefaultConnection"
     connectionString="Data Source=(localdb)\MSSQLLocalDB;myDB.mdf;Initial Catalog=MyDBName;Integrated Security=True"
     providerName="System.Data.SqlClient"/>
<add name="DefaultConnection"
     connectionString="Data Source=localhost;myDB.mdf;Initial Catalog=MyDBName;Integrated Security=True"
     providerName="System.Data.SqlClient"/>