Smo: individuare le istanze di SQL Server
Esistono molti metodi per ottenere programmaticamente informazioni utili circa le istanze di SQL Server disponibili sia localmente che in rete anche se, in quest’ultimo caso, non tutti garantiscono il corretto funzionamento dal momento che possono entrare in gioco fattori difficilmente prevedibili e arginabili legati solitamente all’infratruttura di security della rete piuttosto che alla configurazione delle varie istanze di SQL Server.
Ad ogni modo, in nostro soccorso corrono le ormai famigerate API conosciute con l’acronimo di Smo (SQL Server Management Objects), che permettono di interagire con versioni di SQL Server dalla 7 in poi.
Il primo passo da effettuare è dunque l’importazione nel nostro progetto del namespace Microsoft.SqlServer.Management.Smo tramite la ‘reference’ alle librerie Microsoft.SqlServer.Smo.dll e Microsoft.SqlServer.ConnectionInfo.dll. A questo punto, un primo metodo percorribile (e facilmente opinabile) permette di enumerare la lista delle istanze (locali e non) registrate in SQL Server Management Studio tramite il metodo EnumRegisteredServers di SmoApplication: