Impostazione di un'azione del punto di interruzioneSpecify a Breakpoint Action

Un'azione Quando raggiunto per un punto di interruzione specifica un'attività personalizzata eseguita dal debugger Transact-SQLTransact-SQL per un punto di interruzione.A breakpoint When Hit action specifies a custom task that the Transact-SQLTransact-SQL debugger performs for a breakpoint. Se viene raggiunto il numero di passaggi specificato e viene soddisfatta qualsiasi condizione per il punto di interruzione, il debugger esegue l'azione specificata per il punto di interruzione.If the specified hit count is reached and any specified breakpoint condition is satisfied, the debugger performs the action specified for the breakpoint.

Considerazioni sulle azioni Action Considerations

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.The default action for a breakpoint is to break execution when both the hit count and breakpoint condition have been satisfied. L'utilizzo principale di un'azione Quando raggiunto nel debugger Transact-SQLTransact-SQL consiste nello stampare informazioni nella finestra Output del debugger specificando un messaggio di stampa.The primary use of a When Hit action in the Transact-SQLTransact-SQL debugger is to instead print information to the debugger Output window by specifying a print message.

È possibile specificare un messaggio di stampa nell'opzione Stampa un messaggio . Il messaggio di stampa viene specificato come stringa di testo che include espressioni contenenti informazioni ottenute dal debug di Transact-SQLTransact-SQL .A print message is specified in the Print a Message option, and is specified as a text string that includes expressions containing information from the Transact-SQLTransact-SQL being debugged. Le espressioni includono gli elementi seguenti:Expressions include:

  • Un'espressione Transact-SQLTransact-SQL racchiusa tra parentesi graffe ({}).A Transact-SQLTransact-SQL expression contained in curly braces ({}). Le espressioni possono includere variabili, parametri e funzioni predefinite Transact-SQLTransact-SQL .The expressions can include Transact-SQLTransact-SQL variables, parameters, and built-in functions. Ad esempio, {@MyVariable}, {@NameParameter}, {@@SPID} o {SERVERPROPERTY('ProcessID')}.Examples include {@MyVariable}, {@NameParameter}, {@@SPID}, or {SERVERPROPERTY(‘ProcessID’)}.

  • Una delle parole chiave seguenti:One of the following keywords:

    1. $ADDRESS restituisce il nome della stored procedure o della funzione definita dall'utente in cui è impostato il punto di interruzione.$ADDRESS returns the name of the stored procedure or user-defined function where the breakpoint is set. Se il punto di interruzione è impostato nella finestra dell'editor, $ADDRESS restituisce il nome del file di script modificato.If the breakpoint is set in the editor window, $ADDRESS returns the name of the script file being edited. $ADDRESS e $FUNCTION restituiscono le stesse informazioni nel debugger Transact-SQLTransact-SQL .$ADDRESS and $FUNCTION return the same information in the Transact-SQLTransact-SQL debugger.

    2. $CALLER restituisce il nome dell'unità di codice Transact-SQLTransact-SQL che ha chiamato una stored procedure o una funzione.$CALLER returns the name of the unit of Transact-SQLTransact-SQL code that called a stored procedure or function. Se il punto di interruzione è nella finestra dell'editor, $CALLER restituisce <No caller available>.If the breakpoint is in the editor window, $CALLER returns <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.If the breakpoint is in a stored procedure or user-defined function called from the code in the editor window, $CALLER returns the name of the file being edited. 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.If the breakpoint is in a stored procedure or user-defined function called from another stored procedure or function, $CALLER returns the name of the calling procedure or function.

    3. $CALLSTACK restituisce lo stack di chiamate delle funzioni nella catena che hanno chiamato la stored procedure o la funzione definita dall'utente corrente.$CALLSTACK returns the call stack of functions in the chain that called the current stored procedure or user-defined function. Se il punto di interruzione è nella finestra dell'editor, $CALLSTACK restituisce il nome del file di script modificato.If the breakpoint is in the editor window, $CALLSTACK returns the name of the script file being edited.

    4. $FUNCTION restituisce il nome della stored procedure o della funzione definita dall'utente in cui è impostato il punto di interruzione.$FUNCTION returns the name of the stored procedure or user-defined function where the breakpoint is set. Se il punto di interruzione è impostato nella finestra dell'editor, $FUNCTION restituisce il nome del file di script modificato.If the breakpoint is set in the editor window, $FUNCTION returns the name of the script file being edited.

    5. $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-SQLTransact-SQL .$PID and $PNAME return the ID and name of the operating system process running the instance of the Database Engine where the Transact-SQLTransact-SQL is running. $PID restituisce lo stesso ID di SERVERPROPERTY('ProcessID'), con la differenza che $PID è un valore esadecimale mentre SERVERPROPERTY('ProcessID') è un valore decimale.$PID returns the same ID as SERVERPROPERTY(‘ProcessID’), except that $PID is a hexadecimal value while SERVERPROPERTY(‘ProcessID’) is a decimal value.

    6. $TID e $TNAME restituiscono l'ID e il nome del thread del sistema operativo che esegue il batch Transact-SQLTransact-SQL .$TID and $TNAME return the ID and name of the operating system thread running the Transact-SQLTransact-SQL batch. Il thread è un thread associato al processo che esegue l'istanza del Motore di database.The thread is one associated with the process running the instance of the Database Engine. $TID restituisce lo stesso valore di SELECT kpid FROM sys.sysprocesses WHERE spid = @@SPID, con la differenza che $TID è un valore esadecimale mentre kpid è un valore decimale.$TID returns the same value as SELECT kpid FROM sys.sysprocesses WHERE spid = @@SPID, except that $TID is a hexadecimal value while kpid is a decimal value.

  • È 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 \\.You can also use the backslash character (\) as an escape character to allow curly braces and backslashes in the message: \{, \}, and \\.

Per specificare un'azione Quando raggiuntoTo Specify a When Hit Action

  1. Nella finestra dell'editor fare clic con il pulsante destro del mouse sul glifo del punto di interruzione, quindi scegliere Quando raggiunto dal menu di scelta rapida.In the editor window, right-click the breakpoint glyph, and then click When Hit on the shortcut menu.

    oppure-or-

    Nella finestra Punti di interruzione fare clic con il pulsante destro del mouse sul glifo del punto di interruzione, quindi scegliere Quando raggiunto dal menu di scelta rapida.In the Breakpoints window, right-click the breakpoint glyph, and then click When hit on the shortcut menu.

  2. Nella finestra di dialogo Quando il punto di interruzione viene raggiunto selezionare il comportamento desiderato:In the When Breakpoint Is Hit dialog box, select the behavior you want:

    1. Selezionare Stampa un messaggio per stampare un messaggio nella finestra Output del debugger quando il punto di interruzione viene raggiunto.Select Print a Message to print a message in the debugger Output window when the breakpoint is hit.

    2. L'opzione Esegui una macro non è disponibile dal debugger Transact-SQLTransact-SQL ed è disattivata.The Run a Macro option is not available from the Transact-SQLTransact-SQL debugger, and is greyed out.

    3. Selezionare Continua esecuzione se non si desidera che l'esecuzione venga sospesa dal punto di interruzione.Select Continue execution if you do not want the breakpoint to pause execution. Questa opzione è attiva solo se è stata selezionata l'opzione Stampa un messaggio .This option is active only if you have selected the Print a Message option.

  3. Fare clic su OK per implementare le modifiche o su Annulla per uscire senza applicare le modifiche.Click OK to implement the changes, or Cancel to exit without applying the changes.

Vedere ancheSee Also

Impostare una condizione del punto di interruzione Specify a Breakpoint Condition
Specifica di un numero di passaggi Specify a Hit Count