2010-10-13 4 views
1

У меня есть 2 экземпляра SQL Server 2008R2 и экземпляр SQL Server Express 2008.
SQLCMD и т. Д. Работает [1].«SQLCMD -L» не работает - почему?

Но "SQLCMD -L" и "OSQL -L" fail [2].
Почему?
Что мне недостает в использовании SQLCMD?
Как использовать SQLCMD для получения серверов?

[1] Результаты испытаний SQLCMD

>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

Серверы: - NONE -

Update:
После запуска 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 см. Мое обновление. В чем смысл раскрытия остановленных экземпляров? –

+0

1) '(local)' и 'PBLACK' - то же самое. 2) Служба просмотра SQL Server перечисляет все установленные экземпляры, независимо от того, запущены они или остановлены.Рассмотрите сценарии, такие как инструменты управления SSMS, чем можете перечислять экземпляры, а затем выставлять их в пользовательском интерфейсе, откуда они могут быть * начаты *. –

+0

безупречный. никогда не ожидал такого ответа :) – sotn

Смежные вопросы