1

我安裝了Visual Studio 2015和SQL Server數據工具。我可以看到數據庫,表等,並在Visual Studio中運行查詢。但是,我無法使用第三方應用程序連接到數據庫。如何連接到在VS2015中創建的數據庫SQL Server數據工具

enter image description here

看來,該SQL Server服務不聽任何端口上:

enter image description here

enter image description here

如何連接到該數據庫?或者如何讓這項服務來監聽一個端口?

+1

您正在使用SQL Server Express ** LocalDB ** - 這是一個「按需」服務器 - 它只在應用程序運行時快速啓動,並在停止應用程序時關閉。因此,您在系統上看不到它 –

回答

1

SQL Server Express LocalDB(通常簡稱爲「LocalDB」)作爲由登錄啓動的後臺進程運行,而不是作爲服務運行。它只能接受本地連接。如果應用程序是.NET應用程序或實現LocalDB API,然後嘗試通過(localdb)\...語法進行連接,則實例可以使用SQLLocalDB.exe實用程序,手動啓動,如果它尚未啓動,則會自動啓動該實例運行。在關閉最後一次連接後大約5分鐘,LocalDB實例也會自動關閉。

你可以看到你有什麼情況下,通過運行在命令窗口中的以下內容:

SQLLocalDB i 

您可以通過運行啓動一個實例:

SQLLocalDB s ProjectsV12 

可以通過運行實例特定的信息:

SQLLocalDB i ProjectsV12 

您可以通過運行停止實例:

SQLLocalDB p ProjectsV12 

您可以連接到一個實例進行測試,即使目前沒有運行,通過運行以下命令行(給它一點時間來旋轉起來之前,它的第一次連接):

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

這將沿線的返回值:

計算機名\#的LocalDB XXXXXXXX

其中每個「x」是一個十六進制數字(即0-9,A-F)。或者,如果它是一個共享實例,這個名字將在以下格式:

計算機名\的LocalDB#SHxxxxxx

每個正在運行的實例也有一個命名管道的形式命名:

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

其中每個「x」又是一個十六進制數字。而且,如果它是共享實例,則前兩個十六進制數字將替換爲「SH」。

(即(localdb)\... VS np:\\.\pipe\LOCALDB#xxxxxxxx\tsql\query)的兩種語法之間的主要區別是,使用命名管道語法將不會自動,如果它沒有運行啓動實例:只有(localdb)\...語法可以做到這一點,因爲它得到通過特殊的LOCALDB API進行路由。

+0

非常感謝!我在Hostname \ ip字段中使用了「(localdb)\ ProjectsV12」 – Qeeet