Configurazione e avvio del debugger Transact-SQL

È possibile avviare il debugger Transact-SQL dopo avere aperto una finestra dell'editor di query del Motore di database. È quindi possibile eseguire il codice Transact-SQL in modalità di debug fino a quando non si desidera interrompere il debugger. Per ottenere i risultati desiderati, è possibile personalizzare la modalità di esecuzione del debugger impostando delle opzioni.

Configurazione del debugger Transact-SQL

Il debugger Transact-SQL include componenti sia sul lato server che sul lato client. I componenti sul lato server vengono installati con ciascuna istanza del Motore di database di SQL Server 2008. I componenti sul lato client vengono installati quando si installano gli strumenti di SQL Server 2008 del lato client.

Non esistono requisiti di configurazione per eseguire il debugger Transact-SQL se SQL Server Management Studio è in esecuzione sullo stesso computer dell'istanza del Motore di database di SQL Server. Invece, per eseguire il debugger Transact-SQL quando SQL Server Management Studio è in esecuzione in un computer diverso da quello che esegue l'istanza del Motore di database, è necessario attivare eccezioni relative a programmi e porte tramite l'applicazione del Pannello di controllo Windows Firewall in entrambi computer.

Nel computer che esegue l'istanza del Motore di database, in Windows Firewall specificare le informazioni seguenti:

  • Aggiungere la porta TCP 135 all'elenco delle eccezioni.

  • Aggiungere il programma sqlservr.exe all'elenco delle eccezioni. Per impostazione predefinita, il programma sqlservr.exe viene installato nel percorso C:\Programmi\Microsoft SQL Server\MSSQL10.NomeIstanza\MSSQL\Binn, 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 computer che esegue SQL Server Management Studio, nell'applicazione del Pannello di controllo Windows Firewall specificare le informazioni seguenti:

  • Aggiungere la porta TCP 135 all'elenco delle eccezioni.

  • Aggiungere il programma ssms.exe (SQL Server Management Studio) all'elenco delle eccezioni. Per impostazione predefinita, il programma ssms.exe viene installato nel percorso C:\Programmi\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE.

Avvio e interruzione del debugger

Di seguito vengono indicati i requisiti per avviare il debugger Transact-SQL:

  • SQL Server Management Studio deve essere in esecuzione con un account di Windows membro del ruolo predefinito del server sysadmin.

  • La finestra dell'editor di query del Motore di database deve essere connessa tramite un account di accesso con autenticazione di Windows o con autenticazione di SQL Server che sia membro del ruolo predefinito del server sysadmin.

  • La finestra dell'editor di query del Motore di database deve essere connessa a un'istanza del Motore di databaseSQL Server 2008. Non è possibile eseguire il debugger quando la finestra dell'editor di query è connessa a un'istanza che è in modalità utente singolo.

Si consiglia di eseguire il debug del codice Transact-SQL su un server di prova, anziché un server di produzione, per le ragioni che seguono:

  • L'esecuzione del debug è un'operazione che richiede privilegi elevati. Solo i membri del ruolo predefinito del server sysadmin possono pertanto eseguire il debug in SQL Server.

  • Le sessioni di debug spesso durano a lungo perché si esamina l'esecuzione di numerose istruzioni Transact-SQL. I blocchi, ad esempio i blocchi di aggiornamento, che vengono acquisiti dalla sessione potrebbero essere mantenuti per lunghi periodi di tempo, fino al termine della sessione o al commit o rollback della transazione.

All'avvio del debugger Transact-SQL, la finestra dell'editor di query entra nella modalità di debug e l'esecuzione del codice viene sospesa dal debugger in corrispondenza della prima riga. A questo punto, è possibile procedere istruzione per istruzione, sospendere l'esecuzione su istruzioni Transact-SQL specifiche e utilizzare le finestre del debugger per visualizzare lo stato corrente dell'esecuzione: È possibile avviare il debugger facendo clic sul pulsante Debug nella barra degli strumenti Query oppure scegliendo Avvia debug dal menu Debug.

La finestra dell'editor di query rimane in modalità di debug sino al termine dell'ultima istruzione nella finestra dell'editor di query oppure fino a quando non viene interrotta la modalità di debug. È possibile arrestare l'esecuzione della modalità di debug e di un'istruzione utilizzando uno dei metodi seguenti:

  • Scegliere Termina debug dal menu Debug.

  • Nella barra degli strumenti Debug fare clic sul pulsante Termina debug.

  • Scegliere Annulla esecuzione query dal menu Query.

  • Nella barra degli strumenti Query fare clic sul pulsante Annulla esecuzione query.

È inoltre possibile arrestare la modalità di debug e consentire il completamento delle restanti istruzioni Transact-SQL scegliendo Disconnetti tutto dal menu Debug.

Controllo del debugger

È possibile controllare l'esecuzione del debugger Transact-SQL utilizzando i comandi, le barre degli strumenti e le scelte rapide seguenti:

  • Il menu Debug e la barra degli strumenti Debug. Sia il menu Debug che la barra degli strumenti Debug sono inattivi fino a quando non viene attivata una finestra dell'editor di query aperta. Rimangono attivi fino alla chiusura del progetto corrente.

  • Le scelte rapide da tastiera per il debugger.

  • Il menu di scelta rapida dell'editor di query. Il menu di scelta rapida viene visualizzato quando si fa clic con il pulsante destro del mouse su una riga in una finestra dell'editor di query. Quando la finestra dell'editor di query è in modalità di debug, nel menu di scelta rapida vengono visualizzati i comandi del debugger applicabili alla riga o stringa selezionata.

  • Le voci di menu e i comandi contestuali nelle finestre aperte dal debugger, ad esempio le finestre Espressione di controllo o la finestra Punti di interruzione.

Nella tabella seguente sono illustrati i comandi di menu del debugger, i pulsanti della barra degli strumenti e i tasti di scelta rapida.

Comando del menu Debug

Comando di scelta rapida dell'editor

Pulsante della barra degli strumenti

Scelta rapida da tastiera

Azione

Finestra, Punti di interruzione

Non disponibile

Punti di interruzione

CTRL +ALT +B

Consente di visualizzare la finestra Punti di interruzione nella quale è possibile visualizzare e gestire i punti di interruzione.

Finestra, Espressione di controllo, Espressione di controllo1

Non disponibile

Punti di interruzione, Espressione di controllo, Espressione di controllo1

CTRL+ALT+W, 1

Consente di visualizzare la finestra Espressione di controllo1.

Finestra, Espressione di controllo, Espressione di controllo2

Non disponibile

Punti di interruzione, Espressione di controllo, Espressione di controllo2

CTRL+ALT+W, 2

Consente di visualizzare la finestra Espressione di controllo2.

Finestra, Espressione di controllo, Espressione di controllo3

Non disponibile

Punti di interruzione, Espressione di controllo, Espressione di controllo3

CTRL+ALT+W, 3

Visualizzare la finestra Espressione di controllo3.

Finestra, Espressione di controllo, Espressione di controllo4

Non disponibile

Punti di interruzione, Espressione di controllo, Espressione di controllo4

CTRL+ALT+W, 4

Consente di visualizzare la finestra Espressione di controllo4.

Finestra, Variabili locali

Non disponibile

Punti di interruzione, Variabili locali

CTRL+ALT+V, L

Consente di visualizzare la finestra Variabili locali.

Finestra, Stack di chiamate

Non disponibile

Punti di interruzione, Stack di chiamate

CTRL+ALT+C

Consente di visualizzare la finestra Stack di chiamate.

Finestra, Thread

Non disponibile

Punti di interruzione, Thread

CTRL+ALT+H

Consente di visualizzare la finestra Thread.

Continua

Non disponibile

Continua

ALT+F5

Consente di eseguire il codice fino al successivo punto di interruzione. Continua non è attivo fintanto che una finestra dell'editor di query in modalità di debug non ha lo stato attivo.

Avvia debug

Non disponibile

Avvia debug

ALT+F5

Consente di attivare la modalità di debug per una finestra dell'editor di query ed eseguire il codice fino al primo punto di interruzione. Se lo stato attivo si trova in una finestra dell'editor di query in modalità di debug, Avvia debug viene sostituito da Continua.

Interrompi tutto

Non disponibile

Interrompi tutto

CTRL+ALT+INTERR

Questa funzionalità non è utilizzata dal debugger Transact-SQL.

Termina debug

Non disponibile

Termina debug

MAIUSC+F5

Consente di portare una finestra dell'editor di query dalla modalità di debug alla modalità normale.

Disconnetti tutto

Non disponibile

Non disponibile

Non disponibile

Consente di arrestare la modalità di debug, ma di eseguire le istruzioni restanti nella finestra dell'editor di query.

Esegui istruzione

Non disponibile

Esegui istruzione

F11

Consente di eseguire l'istruzione successiva e anche di aprire una nuova finestra dell'editor di query nella modalità di debug se l'istruzione successiva esegue una stored procedure, un trigger o una funzione.

Esegui istruzione/routine

Non disponibile

Esegui istruzione/routine

F10

Stessa funzione di Esegui istruzione eccetto per il fatto che con questo comando non viene eseguito il debug di funzioni, stored procedure o trigger.

Esci da istruzione/routine

Non disponibile

Esci da istruzione/routine

MAIUSC+F11

Consente di eseguire il codice restante in un trigger, una funzione o una stored procedure ignorando i punti di interruzione. La normale modalità di debug riprende quando il controllo viene restituito al codice che ha chiamato il modulo.

Non disponibile

Esegui fino al cursore

Non disponibile

CTRL+F10

Consente di eseguire tutto il codice dall'ultima posizione di arresto fino alla posizione corrente del cursore ignorando i punti di interruzione.

Controllo immediato

Controllo immediato

Non disponibile

CTRL+ALT+Q

Consente di visualizzare la finestra Controllo immediato.

Imposta/Rimuovi punto di interruzione

Punto di interruzione, Inserisci punto di interruzione

Non disponibile

F9

Consente di inserire un punto di interruzione in corrispondenza dell'istruzione Transact-SQL corrente o selezionata.

Non disponibile

Punto di interruzione, Elimina punto di interruzione

Non disponibile

Non disponibile

Consente di eliminare il punto di interruzione dalla riga selezionata.

Non disponibile

Punto di interruzione, Disattiva punto di interruzione

Non disponibile

Non disponibile

Consente di disattivare il punto di interruzione nella riga selezionata. Il punto di interruzione rimane sulla riga di codice, ma l'esecuzione non verrà interrotta fino a quando non sarà riattivato.

Non disponibile

Punto di interruzione, Attiva punto di interruzione

Non disponibile

Non disponibile

Consente di attivare il punto di interruzione nella riga selezionata.

Elimina tutti i punti di interruzione

Non disponibile

Non disponibile

CTRL+MAIUSC+F9

Consente di eliminare tutti i punti di interruzione.

Disattiva tutti i punti di interruzione

Non disponibile

Non disponibile

Non disponibile

Consente di disattivare tutti i punti di interruzione.

Non disponibile

Aggiungi espressione di controllo

Non disponibile

Non disponibile

Consente di aggiungere l'espressione selezionata alla finestra Espressione di controllo.