如何修复 MSSQLLocalDB?

How to fix MSSQLLocalDB?

在我的机器上 MSSQLLocalDB 已损坏:

    PS C:\WINDOWS\system32> sqllocaldb i
    MSSQLLocalDB
    Projects
    ProjectsV12
    v11.0
    PS C:\WINDOWS\system32> sqllocaldb i mssqllocaldb
    The required LocalDB version "0.0" is not installed.
    PS C:\WINDOWS\system32>

除了重新安装 Visual Studio / Sql Server / Sql Express 之外,我还能做些什么来修复它吗?

我应该提到,任何依赖于 LocalDb 的 Visual Studio 功能都因此而无法工作,例如 CodeMaps

我最终做了以下事情。请注意,我确定这不是执行此操作的正确方法,而是一种混乱的技巧。它让我的 CodeMaps 再次工作,所以我很高兴。

我删除了mssqllocaldb

sqllocaldb d mssqllocaldb

系统不让我重新创建所以我又创建了一个:

sqllocaldb с mssqllocaldb1

我去了 "C:\Users\[username]\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\" 并备份了 MSSQLLocalDB 文件夹。然后我将 MSSQLLocalDB1 文件夹复制到 MSSQLLocalDB.

在注册表中,我在 HKCU\Software\Microsoft\Microsoft SQL Server\UserInstances\ 下找到了新实例并更改了 DataDirectory 值以反映新路径,即以 MSSQLLocalDB 而不是 MSSQLLocalDB1 结尾.

在那之后我能够成功启动 MSSQLLocalDB 并且 CodeMaps 工作:

PS C:\WINDOWS\system32> sqllocaldb s mssqllocaldb

LocalDB instance "MSSQLLocalDB" started.

如果您刚刚安装了 LocalDB 并且尚未启动实例,则可能会发生这种情况。我不确定重新启动是否会为我重新启动它(我想它会),但以下工作不需要:

C:\Users\sweaver>sqllocaldb.exe s MSSQLLocalDB
LocalDB instance "MSSQLLocalDB" started.

这应该是您所需要的全部 - 但这是我在此过程中使用的完整诊断步骤。


这是在安装新版本的 LocalDB (2014) 之前

C:\Users\sweaver>sqllocaldb.exe i
v11.0

之后

C:\Users\sweaver>sqllocaldb.exe i
MSSQLLocalDB
v11.0

然后我立即得到这个错误

C:\Users\sweaver>sqllocaldb.exe i MSSQLLocalDB
The required LocalDB version "0.0" is not installed.

奇怪!版本 11 怎么样 - 没关系

C:\Users\sweaver>sqllocaldb.exe i v11.0
Name:               v11.0
Version:            11.0.5343.0
Shared name:
Owner:              RR2014\sweaver
Auto-create:        Yes
State:              Running
Last start time:    3/10/2016 3:00:29 PM
Instance pipe name: np:\.\pipe\LOCALDB#60C1AC49\tsql\query

这是版本

C:\Users\sweaver>sqllocaldb.exe v
Microsoft SQL Server 2012 (11.0.5343.0)
Microsoft SQL Server 2014 (12.0.2000.8)

让我们开始吧

C:\Users\sweaver>sqllocaldb.exe s MSSQLLocalDB
LocalDB instance "MSSQLLocalDB" started.

然后再试一次...

C:\Users\sweaver>sqllocaldb.exe i MSSQLLocalDB
Name:               MSSQLLocalDB
Version:            12.0.2000.8
Shared name:
Owner:              RR2014\sweaver
Auto-create:        Yes
State:              Running
Last start time:    3/10/2016 3:10:55 PM
Instance pipe name: np:\.\pipe\LOCALDB#1D3F49F3\tsql\query

呸!那很简单!

我通过删除文件夹和注册码解决了这个问题。然后是安装。

删除文件夹

C:\Users\username\AppData\Local\Microsoft\Microsoft SQL 服务器本地 DB\Instances\MSSQLLocalDB

删除含有MSSQLLocalDB之类的注册表项 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Microsoft SQL Server\UserInstances{B0A12082-AC5B-4E05-A0C9-ABFB6816EE16}

运行 来自 cmd

C:>sqllocaldb c MSSQLLocalDB

使用版本 13.0.2151.0 创建的 LocalDB 实例 "MSSQLLocalDB"。

我刚刚将 HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\UserInstances\ 下的注册表项 GUID 更新为对我有用的 ParentInstance 的正确值。当您升级到更高版本时,通常会发生这种情况。我必须将 ParentInstance 值从 MSSQL12E.LOCALDB 更改为 MSSQL13E.LOCALDB