web-dev-qa-db-ja.com

SQLがネットワーク上でのみ存在する場合のSQLコマンド

コマンドプロンプトでosql -Lコマンドを使用して、ネットワーク上のすべてのSQLサーバーのリストを見つけようとしています。このコマンドは、SQLServerが作業しているコンピュータにインストールされている場合にのみ機能します。 SQLServerがその特定のコンピュータにインストールされていないが、ネットワーク上のどこかにインストールされている場合は、このコマンドを実行する方法はありますか。

ありがとうございました!

編集:私はJavaでプログラムを書いているので、.NET Frameworkでできる簡単な列挙は私のために機能しません。

1
chama

コマンドラインプログラムを探している場合は、SQLPING3コマンドラインを調べて、入力を実行して取得できます。私はそれがそれがアルファにあると言うことを知っていますが、それはうまく機能します。 OSQL -Lを超えるSQL Serverを検出するためのすべての既知のメソッドを使用します(これは単にUDP/1434ブロードキャストを行います)。

SQLPing3コマンドライン(およびsqlsecurity.comからの他のフリーツール)

1
K. Brian Kelley

SMOオブジェクトに頼る前に、ネットワーク上の利用可能なSQLインスタンスのリストを返す前に、これを読む必要があります SQLDataSourceEnumerator 。不完全または矛盾する結果を返すことができます。

0
doug_w

このリンクを見てください
[。] http://www.sqldbatips.com/showarticle.asp?id=45
[。]このリンクは、他のプログラミング言語やプラットフォームでお探しの場合、.NET Frameworkを介してコードごとに行う方法を示します。

0
IordanTanev

ユーティリティの文書によると、それは地元のサーバーとネットワーク上のものの両方を示すべきです。この問題は、SQLブラウザサービスが実行されていないため、そのサービスはネットワーク上のすべてのSQLサーバーのリストを取得するために使用されるものです。

SQLブラウザサービス: http://msdn.microsoft.com/en-us/library/ms181087.aspx

0
David Parvin

SQLCMDはMicrosofts Webサイトから別々にダウンロードできます。

Microsoft SQL Server 2005コマンドラインクエリユーティリティ

SQLCMDを使用して、呼び出しをOSQLに置き換えます。コマンドライン引数と出力はあなたの目的で同じです。

0
George Mastros