Debug di Stored Procedure, trigger e funzioni in SQL Server 2008

24 agosto 2009

Una delle novità più significative di SQL Server 2008 per i database developer è la possibilità di effettuare il debug di Stored Procedure, trigger e funzioni all’interno del programma SQL Server Management Studio.

Non si tratta di una vera e propria innovazione, perché uno strumento di debug era già presente nel Query Analizer di SQL Server 2000. Questo strumento, tuttavia, fu eliminato da SQL Server 2005, che richiedeva l’utilizzo di Visual Studio per effettuare il debug delle proprie routine. Nei casi in cui questa strada non fosse percorribile (soprattutto per la necessità di acquistare una licenza aggiuntiva di Visual Studio), si doveva ricorrere a soluzioni “manuali”, come inserire istruzioni PRINT all’interno del codice, per mostrare il valore delle variabili utilizzate e per tenere traccia del flusso di esecuzione.

L’approccio manuale, come è facile intuire, ha il grande svantaggio di richiedere uno sforzo in più, essendo difficilmente automatizzabile, dal momento che il database developer deve, di volta in volta, preoccuparsi di inserire a mano le istruzioni PRINT nei punti giusti del codice; d’altra parte, non potendo seguire il flusso delle istruzioni passo-passo, in molti casi questo era l’unico modo per determinare, ad esempio, il punto esatto e le variabili coinvolte nel fallimento di una procedura.

Accogliendo le richieste degli amministratori di basi di dati e, soprattutto, dei database developer, il debug di stored procedure, trigger e funzioni è stato reintrodotto nell’ultima versione del DBMS di Microsoft. È supportato in tutte le edizioni di SQL Server 2008, compresa la versione Express, ma solo se il database a cui ci si connette è realizzato con queste release; non è quindi possibile sfruttare il nuovo Management Studio per utilizzare il debugger con le versioni precedenti del DBMS.

Attivare il supporto al debugger

Il debugger Transact-SQL può essere utilizzato immediatamente, senza necessità di alcuna configurazione aggiuntiva, se l’SQL Server Management Studio è in esecuzione sullo stesso computer dell’istanza del DBMS. Quando, invece, il Management Studio viene lanciato da una postazione diversa da quella che ospita il Database Engine, è necessario attivare in entrambi i computer alcune eccezioni relative a programmi e porte tramite l’applicazione Windows Firewall del Pannello di controllo.

Nel computer che esegue l’istanza di SQL Server a cui ci si vuole connettere, si deve configurare Windows Firewall nel modo seguente:

  • Aggiungere la porta TCP 135 all’elenco delle eccezioni
  • Aggiungere il programma sqlservr.exe all’elenco delle eccezioni

Per impostazione predefinita, sqlserver.exe viene installato nel percorso

C:\Programmi\Microsoft SQL Server\MSSQL10.NomeIstanza\MSSQL\Bin

dove NomeIstanza è MSSQLSERVER per l’istanza predefinita e il nome dell’istanza per qualsiasi istanza denominata.

Se i criteri di dominio richiedono che le comunicazioni di rete siano eseguite tramite IPsec, è necessario aggiungere anche la porta UDP 4500 e la porta UDP 500 all’elenco delle eccezioni.

Nel sistema da cui si vuole avviare il debugger tramite SQL Server Management Studio, Windows Firewall deve essere impostato come segue:

  • Aggiungere la porta TCP 135 all’elenco delle eccezioni
  • Aggiungere il programma ssms.exe (SQL Server Management Studio) all’elenco delle eccezioni

Il file ssms.exe viene generalmente installato nel percorso

C:\Programmi\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE

Per eseguire il debug, inoltre, è necessario utilizzare un utente che faccia parte del ruolo sysadmin.

Se vuoi aggiornamenti su Debug di Stored Procedure, trigger e funzioni in SQL Server 2008 inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Debug di Stored Procedure, trigger e funzioni in SQL Server 2008

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy