Eseguire il debugger Transact-SQL

Si applica a:SQL Server

È possibile avviare il debugger Transact-SQL dopo aver 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 arresta il debugger. È possibile impostare le opzioni desiderate per personalizzare la modalità di esecuzione del debugger.

Questa funzionalità è disponibile con la versione 17.9.1 di SSMS e versioni precedenti.

Avvio e arresto del debugger

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

  • Se l'editor di query del motore di database è connesso a un'istanza del motore di database in un altro computer, è necessario che debugger sia stato configurato per il debug remoto. Per altre informazioni, vedere Configurare le regole del firewall prima di eseguire il debugger Transact-SQL.

  • SQL Server Management Studio deve essere eseguito 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 database da SQL Server 2005 (9.x) Service Pack 2 (SP2) o versioni successive. 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:

  • Il debug è un'operazione che richiede privilegi elevati. Pertanto, solo i membri del ruolo predefinito del server sysadmin possono eseguire il debug in SQL Server.

  • Le sessioni di debug spesso durano a lungo perché comportano il controllo dell'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 usare 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 arrestata la modalità di debug. È possibile arrestare l'esecuzione della modalità di debug e di un'istruzione utilizzando uno dei metodi seguenti:

  • Dal menu Debug scegliere Arresta debug.

  • Nella barra degli strumenti Debug fare clic sul pulsante Arresta 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 usando 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 Tasto di scelta rapida 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 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 viene usata dal debugger Transact-SQL.
Arresta debug Non disponibile Arresta 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 istruzioneeccetto 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 arresto.
Controllo immediato Controllo immediato Non disponibile CTRL+ALT+Q Consente di visualizzare la finestra Controllo immediato .
Attiva/disattiva 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, Disabilita punto di interruzione Non disponibile Non disponibile Consente di disabilitare il punto di interruzione nella riga selezionata. Il punto di interruzione rimane sulla riga di codice, ma l'esecuzione non verrà arrestata fino a quando non sarà riattivata.
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.
Disabilita tutti i punti di interruzione Non disponibile Non disponibile Non disponibile Consente di disabilitare 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 .

Vedi anche