如何修复MSSQLLocalDB?

时间:2015-11-09 05:26:20

标签: visual-studio sql-server-express localdb

在我的机器上,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

4 个答案:

答案 0 :(得分:14)

如果您刚刚安装了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

唷!那很简单!

答案 1 :(得分:2)

我最终做了什么。请注意,我确信这不是一个正确的方法,而是一个混乱的黑客。它允许我让我的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结束。< / p>

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

  

PS C:\ WINDOWS \ system32&gt; sqllocaldb s mssqllocaldb

     

LocalDB实例“MSSQLLocalDB”已启动。

答案 2 :(得分:0)

我通过删除文件夹和注册表来解决了这个问题。接下来是安装。

删除文件夹

C:\ Users \ username \ AppData \ Local \ Microsoft \ Microsoft SQL Server Local DB \ Instances \ MSSQLLocalDB

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

从cmd运行

C:&gt; sqllocaldb c MSSQLLocalDB

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

答案 3 :(得分:0)

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