Wie nur lokalen SQL-Server finden?

02/09/2009 - 13:58 von Klaus Mayer | Report spam
Hallo,

die Suche nach SQL-Instanzen mittels
SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance;
DataTable ^table = instance.GetDataSources();

ist ja kein Prob. Ich steh' aber gerade völlig auf dem Schlauch, wie
ich die
lokale Instanz ermitteln kann (z.B. SqlExpress)...

Für Eure Tipps dankend,

Klaus
 

Lesen sie die antworten

#1 Elmar Boye
02/09/2009 - 18:52 | Warnen spam
Hallo Klaus,

"Klaus Mayer" schrieb ...
die Suche nach SQL-Instanzen mittels
SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance;
DataTable ^table = instance.GetDataSources();

ist ja kein Prob.
Ich steh' aber gerade völlig auf dem Schlauch, wie ich die
lokale Instanz ermitteln kann (z.B. SqlExpress)...



Bei lokale(n) Instanz(en) entspricht der ServerName dem Rechnernamen,
filtern kannst Du z. B.

SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance;
DataTable table = instance.GetDataSources();
foreach (DataRow row in table.Select("[ServerName] = '" + Environment.MachineName + "'"))
Console.WriteLine("{0}, {1}", row["ServerName"], row["InstanceName"]);

dabei kann mehr als eine (oder auch keine) Instanz geliefert werden.
Der DataSource Enumerator klappert das ganze Netz ab,
so dass zumindest der erste Aufruf lànger dauern kann.
Und der SQL Server Browser Dienst muß ebenfalls laufen.

Alternativ kannst Du die lokalen Instanzen über die Registry ermitteln:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL

siehe auch http://msdn.microsoft.com/de-de/lib...43547.aspx

Gruß Elmar

Ähnliche fragen