【问题标题】:Trying to attach a database fails because it is version 782尝试附加数据库失败,因为它是版本 782
【发布时间】:2021-06-22 23:25:18
【问题描述】:

我最近重新安装了 Windows,并尝试使用现有数据库再次设置 SQL Server。我尝试安装 SQL Server 2012 和 2014,并不断收到相同的错误。错误说数据库是782版本,而这个版本的SQL Server只兼容706及以下。我在 SQL Server 2012 和 2014 中都收到此错误。我认为 2014 与 782+ 兼容。任何人都可以为我提供一些关于如何附加该死数据库的指导吗?沮丧...

来自 SQL Server 2014 的图像..

请注意,我在 2012 年遇到了同样的错误。在重新安装操作系统之前一切正常。

【问题讨论】:

  • 2014 实例不可能声明它仅支持数据库版本 706 或更早版本。因此,发布的错误框来自 2012 年的实例。
  • @AndriyM SQL Server 实例可能是 2012 年,但 SSMS 是 2014 年。现在正在调查。
  • @AndriyM 如何升级?我尝试通过原始安装向导运行升级,它似乎做了一些事情,但@@version 仍然说 sql server 2012。我正在运行 2014 向导..
  • 看看这个问题,也许你的情况也发生了类似的事情:After installing SQL Server 2014 Express can't find local db
  • @AndriyM 我看了看,但似乎没有任何帮助。我目前正在安装一个主要的 Windows 更新。也许这包括 2014 SQL 更新。完成后我会发布

标签: sql-server


【解决方案1】:

数据库必须设置为旧版本或相同版本的服务器。您不能将 2012 服务器与 2014 数据库一起使用。

根据此链接:http://sqlserverbuilds.blogspot.com/2014/01/sql-server-internal-database-versions.html782 是 2014 版,您不能使用早期版本。

如果您尝试过 SQL Server 2014,请更新到最新版本。

还要确保您安装的服务器不仅仅是管理工具,因为您说图像是 2014 年的,但服务器支持 706,这意味着它是 2012 年。

您可以在管理工作室执行“SELECT @@version”来查看您在哪个版本的服务器上运行。

【讨论】:

  • @AndriyM 我假设 OP 使用的是 2014 版的管理工具,但仍在服务器版本 2012 上运行。我已经更新了我的答案。
  • 抱歉,我删除了我的评论。我只是认为它应该更好地在 OP 中解决。感谢您的澄清,这是有道理的,我以前见过人们遇到这种困惑。
  • 好的,我跑了print @@version,它说的是SQL Server 2012
  • 我最终发现 SSMS 2014 仍在暗中使用 SQL Server 2012。我卸载了 2012/2014 年的所有 SQL 文件,仅重新安装了 2014 年,为我的数据库所在的文件夹添加了权限并运行它。有趣的是,我不得不授予“SERVICE”用户权限。确保我在 Visual Web Developer 中的连接字符串正常,一切运行良好。感谢您的回答,并为我指明了正确的方向。
【解决方案2】:

如果您使用的是 LocalDB 2014,您需要做的就是确保您的连接字符串指向正确的实例。

所以改变

"Data Source=(Localdb)\v11.0"

"Data Source=(Localdb)\v12.0" 

"Data Source=(Localdb)\mssqllocaldb"

【讨论】:

  • 另外,请确保您通过运行 SqlLocalDB start "MSSQLLocalDB" 启动 LocalDB 2014 实例。那是为我做的。
【解决方案3】:

我发现两个 SQL 实例正在运行,并且在服务器名称上我提到了旧的 SQLExpress 实例。

ServerName\SQLExpress

我只是将实例更改为较新的实例,在本例中为 SQLServer2014 实例,它解决了我的问题。

ServerName\SQLServer2014

【讨论】:

    【解决方案4】:

    this answer 到“The database cannot be opened because it is version 782. This server supports version 706 and earlier. A downgrade path is not supported”。

    尝试更改兼容性级别 - 它对我有用。

    要验证它是什么级别:

    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 年,使用 @@ 版本您应该能够分辨出哪个 Sql Server 版本是。

    然后运行上面的命令将其更改为您拥有的版本。

    附加步骤:确保查看数据库的可访问性不是 重置,通过右键单击文件夹的属性和 数据库。 (确保您有权限,这样您就无法访问 拒绝)

    【讨论】:

      【解决方案5】:

      另一个解决方案是当您从例如“导出”数据库时将数据库迁移到例如 2012。 Sql Server manager 2014。请在此处找到解决方案:

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

      【讨论】:

        【解决方案6】:

        可能:

        1. 您已经安装了 SQL 版本比现在旧的 LocalDB。
        2. 您没有删除旧的 SQL express LocalDB,并且连接到旧的 LocalDB。

        处理:

        1. 将您的 sql express 更新到最新版本。

        2. 进入新安装的SqlLocalDB(默认为:"C:\Program Files\Microsoft SQL Server\130\LocalDB\Binn"

        3. 以管理员权限使用 cmd.exe 列出、停止、删除旧的 LocalDB 和其他旧实例。

          • 列表:SqlLocalDB.exe i
          • 停止:SqlLocalDB.exe p "MSSQLLocalDN"
          • 删除:SqlLocalDB.exe delete "MSSQlLocalDB"

        最后,重新启动您的 Visual Studio 并重新加载您的项目。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多