2010-10-13 107 views
1

我有2個SQL Server 2008 R2實例和SQL Server Express 2008實例。
SQLCMD等工作[1]。「SQLCMD -L」失敗 - 爲什麼?

但是「SQLCMD -L」和「OSQL -L」失敗[2]。
爲什麼?
我在SQLCMD中使用了什麼?
如何使用SQLCMD獲取服務器? SQLCMD的

[1] 測試結果

>sqlcmd 
1> use AdventureWorks2008R2; 
2> SELECT TOP(2) BusinessEntityID, FirstName, LastName From Person.Person; 
3> GO 
Changed database context to 'AdventureWorks2008R2'. 
BusinessEntityID FirstName           LastName 

---------------- -------------------------------------------------- -------------------------------------------------- 
     285  Syed            Abbas 
     293  Catherine           Abel 
(2 rows affected) 
1> 

[2]

SQLCMD -L

服務器:

個OSQL -L

服務器: - 無 -

更新:
開始SQLBrowser後,我有:

OSQL -L

服務器:
(本地)
PBLACK
PBLACK \ SQL2008R2
PBLACK \ SQLEXPRESS

SQLCMD -L

服務器:
PBLACK
PBLACK \ SQL2008R2
PBLACK \ SQLEXPRESS

爲什麼OSQL枚舉(本地)但SQLCMD不是?
SQLEXPRESS(壞了,我無法啓動它)和SQL2008R2實例沒有運行(停止) - 爲什麼它們被枚舉?
是否可以公開只運行SQL Server實例?

回答

3

實例發現協議依賴於SQL Server Browser Service。默認情況下,此服務被禁用。如果需要能夠發現已安裝的SQL Server實例,則需要明確啓用並啓動此服務。

+0

Plz看到我的更新。暴露停止的事件有什麼意義? – 2010-10-13 05:51:00

+0

1)'(local)'和'PBLACK'是一樣的。 2)SQL Server Browser Service枚舉所有已安裝的實例,無論它們是啓動還是停止。考慮像SSMS管理工具這樣的場景,可以枚舉實例,然後將它們暴露在UI中,從它們可以從哪裏開始*。 – 2010-10-13 17:20:03

+0

完美。從來沒有預料過這種答案:) – sotn 2017-04-18 08:17:35