0

私は SMO を使用してネットワークの利用可能な sqlservers を見つけています。しかし、私が実行している 1 台のマシンで

アプリケーションはデフォルトのインスタンス名を与えませんが、他のすべてのマシンには与えます

名前付きおよびデフォルトのインスタンスが表示されます。

私のシナリオを観察してください。

例: マシン名:rkwrk3-vm-sr (アプリを実行しているローカル マシン

sqlserver2008 がインストールされている)

これには、実際には、デフォルトのインスタンスとして sql2008 があり、名前付きインスタンスとして sqlexpress(2005) があります...

ただし、rkwrk3-vm-sr\sqlexpress のインスタンスは 1 つしか表示されず、rkwrk3-vm-sr は表示されません。

および他のいくつかのマシン Hr-2k3-tm (sqlserver2005 がインストールされている場所)

このため、Hr-2k3-tm と Hr-2k3-tm/sqlexpress が表示されます

これを修正するにはどうすればよいですか。

前もって感謝します。

4

2 に答える 2

1

インスタンス検出プロトコル(1434のUDP)は、SQLブラウザサービスによって提供されます。SQLブラウザサービスは、デフォルトで無効になっています(Slammerという名前のメモリ内で...)。

サービスが有効になっていて、すべてのマシンで開始されていることを確認してください。

于 2009-07-15T20:43:28.683 に答える
0

別の方法を使用してサーバー リストを取得する方がよいかもしれません。おそらく、Microsoft が推奨するこの方法は、System.Data.Sql.SqlDataSourceEnumerator.Instance

SQL Server のインスタンスの列挙
http://msdn.microsoft.com/en-us/library/a6t1z9x2.aspx

またはこの方法:

ODBC http://www.codeproject.com/KB/database/SubmitSQLInfoEnumerator.aspxを使用して、C# で SQL Server インスタンスを列挙する

于 2009-07-15T15:40:17.767 に答える