“SQLCMD -L”失败了 - 为什么?

时间:2010-10-13 03:09:48

标签: sql-server sql-server-2008 sql-server-express sqlcmd

我有2个SQL Server 2008R2实例和SQL Server Express 2008实例 SQLCMD等,有效[1]。

但“SQLCMD -L”和“OSQL -L”失败[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

  
     

服务器:        - 没有 -

更新:
启动SQLBrowser后,我有:

  
    

OSQL -L

  
     

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

     
    

SQLCMD -L

  
     

服务器:
      PBLACK
      PBLACK \ SQL2008R2
      PBLACK \ SQLEXPRESS

为什么OSQL枚举(本地)但不是SQLCMD? SQLEXPRESS(坏了,我无法启动它)和SQL2008R2实例没有运行(停止) - 它们为什么被枚举?
是否可以只公开正在运行的SQL Server实例?

1 个答案:

答案 0 :(得分:3)

实例发现协议依赖于SQL Server Browser Service。默认情况下,此服务已禁用。如果需要能够发现安装的SQL Server实例,则需要显式启用和启动此服务。