SQL仅在networking上存在时的SQL命令

我试图在命令提示符下使用osql -L命令findnetworking上所有sql服务器的列表。 只有在我正在使用的计算机上安装SQLServer时,此命令才起作用。 当SQLServer没有安装在特定的计算机上,但是安装在networking的某个地方时,有什么办法可以运行这个命令吗?

谢谢!

编辑:我正在写一个程序在Java中,所以你可以在.NET框架中做简单的枚举将不适用于我。

如果您正在寻找一个命令行程序,您可以运行并从中获取input,请查看SQLPing3命令行。 我知道它说它是在阿尔法,但它工作正常。 它将使用所有已知的方法来发现一个超越osql -L(它只是一个udp / 1434广播)的SQL Server。

SQLPing3命令行(以及SQLSecurity.com的其他免费工具)

看这个链接
http://www.sqldbatips.com/showarticle.asp?ID=45
这个链接显示了如何通过.Net框架通过代码来实现它,如果你正在寻找一些其他的编程语言或平台的方式请说

根据该实用程序的文档,应显示本地服务器以及networking上的服务器。 问题可能是SQL浏览器服务没有运行,并且该服务是用来获取networking上所有SQL服务器的列表。

SQL浏览器服务: http : //msdn.microsoft.com/en-us/library/ms181087.aspx

您可以从microsofts网站单独下载SQLCMD:

Microsoft SQL Server 2005命令行查询实用程序

用sqlcmdreplace你的调用osql。 命令行参数和输出对于您的目的是相同的。

在依赖SMO对象返回networking上的可用SQL实例列表之前,您应该阅读关于SqlDataSourceEnumerator的相关内容 。 它可以返回不完整或不一致的结果。