コマンドプロンプトでosql -L
コマンドを使用して、ネットワーク上のすべてのSQLサーバーのリストを見つけようとしています。このコマンドは、SQLServerが作業しているコンピュータにインストールされている場合にのみ機能します。 SQLServerがその特定のコンピュータにインストールされていないが、ネットワーク上のどこかにインストールされている場合は、このコマンドを実行する方法はありますか。
ありがとうございました!
編集:私はJavaでプログラムを書いているので、.NET Frameworkでできる簡単な列挙は私のために機能しません。
コマンドラインプログラムを探している場合は、SQLPING3コマンドラインを調べて、入力を実行して取得できます。私はそれがそれがアルファにあると言うことを知っていますが、それはうまく機能します。 OSQL -Lを超えるSQL Serverを検出するためのすべての既知のメソッドを使用します(これは単にUDP/1434ブロードキャストを行います)。
SMOオブジェクトに頼る前に、ネットワーク上の利用可能なSQLインスタンスのリストを返す前に、これを読む必要があります SQLDataSourceEnumerator 。不完全または矛盾する結果を返すことができます。
このリンクを見てください
[。] http://www.sqldbatips.com/showarticle.asp?id=45
[。]このリンクは、他のプログラミング言語やプラットフォームでお探しの場合、.NET Frameworkを介してコードごとに行う方法を示します。
ユーティリティの文書によると、それは地元のサーバーとネットワーク上のものの両方を示すべきです。この問題は、SQLブラウザサービスが実行されていないため、そのサービスはネットワーク上のすべてのSQLサーバーのリストを取得するために使用されるものです。
SQLブラウザサービス: http://msdn.microsoft.com/en-us/library/ms181087.aspx
SQLCMDはMicrosofts Webサイトから別々にダウンロードできます。
Microsoft SQL Server 2005コマンドラインクエリユーティリティ
SQLCMDを使用して、呼び出しをOSQLに置き換えます。コマンドライン引数と出力はあなたの目的で同じです。