Accedere al registro di Windows utilizzando T-SQL

Sql Server prevede una serie di stored procedure di sistema per svolgere funzioni di amministrazione del server, gestione della posta elettronica, esecuzione di comandi di sistema, etc., alcune delle quali anche non documentate, e che possono tornare utili in diverse occasioni. Poichè si tratta di una applicazione basata su COM utilizza il registro di sistema per memorizzare informazioni vitali per il suo funzionamento. Attraverso una store procedure non documentata chiamata xp_regread è possibile leggere il valore di una qualsiasi chiave di registro, utilizzando il tal modo solo codice T-SQL. Lo script seguente legge il contenuto della chiave utilizzata da Sql Server per memorizzare il percorso fisico di installazione.

T-SQL

declare @sqlpath varchar(200)
exec master..xp_regread @root='HKEY_LOCAL_MACHINE', 
     @key='SOFTWARE\MICROSOFT\MICROSOFT SQL SERVER\80\TOOLS\CLIENTSETUP', 
     @value_name='SqlPath', @value=@sqlpath OUT 

Il parametro di output @value conterrà il contenuto della chiave chiamata SqlPath situata nel percorso ‘SOFTWARE\MICROSOFT\MICROSOFT SQL SERVER\80\TOOLS\CLIENTSETUP’

T-SQL

print @sqlpath