Witam
Potrzebuję sposobu na pobranie nazwy instancji zainstalowanych lokalnie instancji serwera sql. Obecnie według MS SQL Management Studio mam zainstalowane 3 serwery(instancje):
komputer-name\SQLEXPRESS,
komputer-name,
komputer-name\instancjaSQL.
Znalazłem sposób aby pobrać nazwy serwerów przez wiersz poleceń “osql -L” lub “sqlcmd -L”. Niestety ten sposób nie działa, ponieważ na komputerze nie ma zainstalowanej usługi SQL SERWER BROWSER, a cmd wywala odpowiwedni komunikat:
“Nazwa sqlcmd nie jest rozpoznawana jako polecenie wewnetrzne lub zewnetrzne program wykonywalny lub plik wsadowy”
Próbowałem też innego sposobu (kod poniżej) lecz i ten sposób nie działa, ponieważ wypluwa tylko instancje sieciowe bez lokalnych.
DataTable dt = SqlDataSourceEnumerator.Instance.GetDataSources();
int i = 0;
foreach (DataRow dr in dt.Rows)
{
if (string.Concat(dr["InstanceName"]).Equals(""))
{
tab[i] = (string.Concat(dr["ServerName"]));
}
else
{
tab[i] = (string.Concat(dr["ServerName"], "\\", dr["InstanceName"]));
}
i++;
}
Można szukać tych danych w rejestrze ale wszędzie gdzie jest to opisane jak to zrobić napisane jest również o tym aby tego nie robić w ten sposób. Więc w jaki sposób to zrobić ?
Usługa SQL SERWER BROWSER nie jest zainstalowana na komputerze, na którym to pobieranie nazw ma działać.