Condividi tramite


Specificare un'azione del punto di interruzione

Si applica a: SQL Server

Un’azione per un punto di interruzione specifica un'attività personalizzata eseguita dal debugger Transact-SQL per un punto di interruzione. Se viene raggiunto il numero di passaggi specificato e viene soddisfatta una condizione per il punto di interruzione, il debugger esegue l'azione specificata per il punto di interruzione.

Considerazioni sulle azioni

L'azione predefinita per un punto di interruzione consiste nell'interrompere l'esecuzione una volta raggiunto il numero di passaggi e soddisfatta la condizione per il punto di interruzione. L'utilizzo principale di un'azione nel debugger Transact-SQL consiste nello stampare informazioni nella finestra Output del debugger.

Il messaggio viene specificato nell'opzione Stampa un messaggio nella Finestra di output, e viene specificato come stringa di testo che include espressioni contenenti informazioni ottenute dal debug di Transact-SQL. Le espressioni includono gli elementi seguenti:

  • Un'espressione Transact-SQL racchiusa tra parentesi graffe ({}). Le espressioni possono includere variabili, parametri e funzioni predefinite Transact-SQL. Tra gli esempi sono inclusi {@MyVariable}, {@NameParameter} {@@SPID} o {SERVERPROPERTY('ProcessID')}.

  • Una delle parole chiave seguenti:

    • $ADDRESS restituisce il nome della stored procedure o della funzione definita dall'utente in cui è impostato il punto di interruzione. Se il punto di interruzione è impostato nella finestra dell'editor, $ADDRESS restituisce il nome del file di script modificato. $ADDRESS e $FUNCTION restituiscono le stesse informazioni nel debugger Transact-SQL.

    • $CALLER restituisce il nome dell'unità di codice Transact-SQL che ha chiamato una stored procedure o una funzione. Se il punto di interruzione è nella finestra dell'editor, $CALLER restituisce <No caller available>. Se il punto di interruzione è in una stored procedure o in una funzione definita dell'utente chiamata dal codice nella finestra dell'editor, $CALLER restituisce il nome del file modificato. Se il punto di interruzione è in una stored procedure o in una funzione definita dell'utente chiamata da un'altra stored procedure o funzione, $CALLER restituisce il nome della procedura o della funzione chiamante.

    • $CALLSTACK restituisce lo stack di chiamate delle funzioni nella catena che hanno chiamato la stored procedure o la funzione definita dall'utente corrente. Se il punto di interruzione è nella finestra dell'editor, $CALLSTACK restituisce il nome del file di script modificato.

    • $FUNCTION restituisce il nome della stored procedure o della funzione definita dall'utente in cui è impostato il punto di interruzione. Se il punto di interruzione è impostato nella finestra dell'editor, $FUNCTION restituisce il nome del file di script modificato.

    • $PID e $PNAME restituiscono l'ID e il nome del processo del sistema operativo che esegue l'istanza del motore di database in cui viene eseguito Transact-SQL. $PID restituisce lo stesso ID di SERVERPROPERTY('ProcessID'), con la differenza che $PID è un valore esadecimale mentre SERVERPROPERTY('ProcessID') è un valore decimale.

    • $TID e $TNAME restituiscono l'ID e il nome del thread del sistema operativo che esegue il batch Transact-SQL. Il thread è un thread associato al processo che esegue l'istanza del Motore di database. $TID restituisce lo stesso valore di SELECT kpid FROM sys.sysprocesses WHERE spid = @@SPID, tranne che $TID è un valore esadecimale mentre kpid è un valore decimale.

  • È anche possibile usare il carattere barra rovesciata (\) come un carattere di escape per consentire la presenza di parentesi graffe e barre rovesciate nel messaggio: \{, \} e \\.

Come specificare un'azione

  1. Nella finestra dell'editor fare clic con il pulsante destro del mouse sul glifo del punto di interruzione, quindi scegliere Azioni dal menu di scelta rapida.

    oppure

    Nella finestra Punti di interruzione fare clic con il pulsante destro del mouse sul glifo del punto di interruzione, quindi scegliere Impostazioni dal menu di scelta rapida.

  2. Nella finestra di dialogo Impostazioni punto di interruzione selezionare l'opzione Azioni.

  3. Nella finestra di dialogo Mostra un messaggio nella finestra di output immettere un'espressione.

  4. Selezionare Continua esecuzione codice se non si desidera che l'esecuzione venga sospesa dal punto di interruzione. Questa opzione è attiva solo se è selezionata l'opzione Azioni.

  5. Selezionare Chiudi per implementare le modifiche.