如何连接到在 VS2015 SQL Server Data Tools 中创建的数据库

How to connect to database created in VS2015 SQL Server Data Tools

我安装了 Visual Studio 2015 和 SQL 服务器数据工具。我可以在 Visual Studio 中看到数据库、表等和 运行 查询。但是,我无法使用第三方应用程序连接到数据库。

SQL 服务器服务似乎没有在任何端口上侦听:

如何连接到那个数据库?或者如何让该服务监听一个端口?

SQL Server Express LocalDB(通常称为 "LocalDB")作为登录启动的后台进程运行,而不是作为服务运行。它只能接受本地连接。可以使用 SQLLocalDB.exe 实用程序手动启动实例,如果应用程序是 .NET 应用程序或实现 LocalDB 55=],然后尝试通过 (localdb)\... 语法连接将自动启动实例(如果实例尚未 运行)。 LocalDB 实例也会在最后一次连接关闭后约 5 分钟自动关闭。

您可以通过 运行 命令中的以下内容查看您拥有的实例 window:

SQLLocalDB i

您可以通过运行:

启动一个实例
SQLLocalDB s ProjectsV12

您可以通过 运行:

获取特定于实例的信息
SQLLocalDB i ProjectsV12

您可以通过运行停止实例:

SQLLocalDB p ProjectsV12

您可以连接到一个实例进行测试,即使它当前不是 运行,通过 运行 以下命令行(在第一次连接之前给它一点时间启动):

SQLCMD -S (localdb)\ProjectsV12 -Q "SELECT @@SERVERNAME;"

这将 return 值如下:

MachineName\LOCALDB#xxxxxxxx

其中每个 "x" 都是一个十六进制数字(即 0-9、A-F)。或者,如果它是共享实例,则名称将采用以下格式:

MachineName\LOCALDB#SHxxxxxx

每个 运行 实例还有一个命名管道名称,格式为:

np:\.\pipe\LOCALDB#xxxxxxxx\tsql\query

其中每个 "x" 又是一个十六进制数字。同样,如果它是共享实例,则前两个十六进制数字将替换为 "SH".

两种语法之间的主要区别(即 (localdb)\...np:\.\pipe\LOCALDB#xxxxxxxx\tsql\query)是使用命名管道语法 不会 自动启动实例如果它还没有 运行:只有 (localdb)\... 语法可以做到这一点,因为它通过特殊的 LOCALDB API.

进行路由