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. |