Debugger Transact-SQL - InformazioniTransact-SQL Debugger - Information

Ogni volta che l'esecuzione viene sospesa dal debugger in corrispondenza di un'istruzione Transact-SQLTransact-SQL specifica, è possibile utilizzare le varie finestre del debugger per visualizzare lo stato corrente dell'esecuzione.Every time that the debugger pauses execution on a specific Transact-SQLTransact-SQL statement, you can use the various debugger windows to view the current execution state.

Finestre del debuggerDebugger Windows

In modalità di debug, il debugger apre due finestre nella parte inferiore della finestra principale di SQL Server Management StudioSQL Server Management Studio .In debugger mode, the debugger opens two windows at the bottom of the main SQL Server Management StudioSQL Server Management Studio window. In queste due finestre vengono fornite tutte le informazioni del debugger.The debugger displays all its information in these two windows. Ciascuna finestra dispone di schede che è possibile selezionare per controllare il set di informazioni che viene visualizzato nella finestra.Each of the debugger windows has tabs that you can select to control which set of information is displayed in the window. La finestra di sinistra contiene le schede Variabili locali, Espressione di controllo1, Espressione di controllo2, Espressione di controllo3ed Espressione di controllo4 .The left debugger window contains the Locals, Watch1, Watch2, Watch3, and Watch4 tabs. La finestra di destra contiene le schede Stack di chiamate, Thread, Punti di interruzione, Finestra di comandoe Output .The right debugger window contains the Call Stack, Threads, Breakpoints, Command Window, and Output tabs.

Nota

Le descrizioni precedenti indicano le posizioni predefinite delle finestre del debugger.The previous descriptions apply to the default locations of the debugger windows. È possibile trascinare una scheda per spostarla da una finestra all'altra oppure è possibile disancorare una scheda per creare una nuova finestra che potrà essere collocata ovunque si desideri.You can drag a tab to move it from one window to another, or you can undock a tab to create a new window that you can put wherever you want.

Per impostazione predefinita, non tutte queste schede o finestre sono attive.By default, not all of these tabs or windows are active. È possibile aprire una particolare finestra utilizzando una qualsiasi delle procedure seguenti:You can open a particular window by using either of the following ways:

  • Scegliere Finestre dal menu Debug, quindi selezionare la finestra desiderata.On the Debug menu, click Windows, and then select the window you want.

  • Fare clic su Punti di interruzione sulla barra degli strumenti Debug, quindi selezionare la finestra desiderata.On the Debug toolbar, click Breakpoints, and then select the window you want.

Espressioni di Transact-SQLTransact-SQL Expressions

Le espressioni sono clausole Transact-SQLTransact-SQL che restituiscono un singolo valore scalare, ad esempio variabili o parametri.Expressions are Transact-SQLTransact-SQL clauses that evaluate to a single, scalar value, such as variables or parameters. La finestra sinistra del debugger può visualizzare i valori di dati attualmente assegnati a espressioni in massimo cinque schede o finestre: Variabili locali, Espressione di controllo1, Espressione di controllo2, Espressione di controllo3ed Espressione di controllo4.The left debugger window can display the data values that are currently assigned to expressions in up to five tabs or windows: Locals, Watch1, Watch2, Watch3, and Watch4.

La finestra Variabili locali visualizza informazioni sulle variabili locali nell'ambito corrente del debugger Transact-SQLTransact-SQL .The Locals window displays information about the local variables in the current scope of the Transact-SQLTransact-SQL debugger. Il set di espressioni elencate nella finestra Variabili locali cambia man mano che il debugger viene eseguito sulle varie parti del codice.The set of expressions that are listed in the Locals window changes as the debugger runs through the different parts of the code.

Le espressioni incluse in Controllo immediato e nelle quattro finestre Espressione di controllo non si limitano semplicemente a elencare l'identificatore di una variabile.The expressions in the QuickWatch and the four Watch windows are not limited to just listing the identifier of a variable. È possibile specificare un'espressione Transact-SQLTransact-SQL che restituisce un valore singolo, ad esempio l'aggiunta di un numero a una variabile, oppure un'istruzione SELECT che restituisce un valore singolo.You can specify a Transact-SQLTransact-SQL expression that evaluates to a single value, such as adding a number to a variable, or a SELECT statement that evaluates to a single value. Esempi di tali situazioni:Examples include:

  • Nome di una variabile, ad esempio @IntegerCounter.</span><span class="sxs-lookup">The name of a variable, such as @IntegerCounter.</span></span>

  • Operazione aritmetica in una variabile, ad esempio @IntegerCounter + 1.An arithmetic operation on a variable, such as @IntegerCounter + 1.

  • Operazione di stringa in due variabili di carattere, ad esempio @FirstName + @LastName.</span><span class="sxs-lookup">A string operation on two character variables, such as @FirstName + @LastName.</span></span>

  • Istruzione SELECT che restituisce un valore singolo, ad esempio SELECT CharCol FROM MyTable WHERE PrimaryKey = 1.A SELECT statement that returns a single value, such as SELECT CharCol FROM MyTable WHERE PrimaryKey = 1.

    È possibile usare la finestra Controllo immediato per visualizzare il valore di un'espressione Transact-SQLTransact-SQL , quindi salvare quell'espressione in una finestra Espressione di controllo .You can use the QuickWatch window to view the value of a Transact-SQLTransact-SQL expression, and then save that expression to a Watch window. Per selezionare un'espressione in Controllo immediato, selezionare o immettere il nome dell'espressione nella casella Espressione .To select an expression in QuickWatch, either select or enter the name of the expression in the Expression box.

    Le quattro finestre Espressione di controllo visualizzano informazioni relative alle variabili e alle espressioni che sono state selezionate.The four Watch windows display information about variables and expressions that you have selected. Il set di espressioni elencate nelle finestre Espressione di controllo non cambia fintanto che non vengono aggiunte o eliminate espressioni nell'elenco.The set of expressions that are listed in the Watch windows does not change until you either add or delete expressions from the list.

    Per aggiungere un'espressione a una finestra Espressione di controllo , è possibile selezionare Aggiungi espressione di controllo nella finestra di dialogo Controllo immediato oppure immette il nome dell'espressione nella colonna Nome di una riga vuota in una finestra Espressione di controllo .To add an expression to a Watch window, you can either select Add Watch in the QuickWatch dialog box, or enter the name of the expression in the Name column of an empty row in a Watch window.

    È possibile impostare i valori dei dati per le variabili nelle finestre Variabili locali, Espressione di controlloo Controllo immediato facendo clic con il pulsante destro del mouse nella riga e selezionando quindi Modifica valore.You can set the data values for variables in the Locals, Watch, or QuickWatch windows by right-clicking the row and then selecting Edit Value. Le colonne Valore nelle finestre Variabili locali ed Espressione di controllo e nella finestra di dialogo Controllo immediato supportano tutte i visualizzatori di testo e di dati XML e HTML.The Value columns in the Locals window, Watch window, and QuickWatch dialog box all support text, XML, and HTML data visualizers. I visualizzatori sono rappresentati da finestre di suggerimenti dati a forma di lente di ingrandimento sul lato destro della colonna Valori .The visualizers are represented by a magnifying glass data tip on the right side end of the Values column. È possibile utilizzare i visualizzatori per visualizzare valori di dati in formato testo, XML o HTML in visualizzazioni che corrispondono ai tipi di dati, ad esempio, per visualizzare file XML in una finestra del browser.You can use the visualizers to view text, XML, or HTML data values in displays that match the data types, for example, viewing XML files in a browser window.

    In modalità debug, se si sposta il puntatore del mouse su un identificatore, viene visualizzata una finestra popup di informazioni rapide con il nome dell'espressione e il relativo valore corrente.In debug mode, when you move the mouse pointer over an identifier, a Quick Info pop up is displayed with the name of the expression and its current value. Per altre informazioni, vedere Informazioni rapide (IntelliSense).For more information, see Quick Info (IntelliSense).

Punti di interruzioneBreakpoints

È possibile usare la finestra Punti di interruzione per visualizzare e gestire i punti di interruzione attualmente impostati.You can use the Breakpoints window to view and manage the currently set breakpoints. Per altre informazioni, vedere Esecuzione istruzione per istruzione del codice Transact-SQL.For more information, see Step Through Transact-SQL Code.

Stack di chiamateCall Stacks

Nella finestra Stack di chiamate vengono visualizzate la posizione di esecuzione corrente e informazioni sulla modalità con cui l'esecuzione passa dalla finestra dell'editor originale attraverso qualsiasi modulo Transact-SQLTransact-SQL (funzione, stored procedure o trigger) per raggiungere la posizione di esecuzione corrente.The Call Stack window displays the current execution location, and information about how execution passed from the original editor window through any Transact-SQLTransact-SQL modules (functions, stored procedures, or triggers) to reach the current execution location. Ciascuna riga nella finestra Stack di chiamate è chiamata stack frame e rappresenta uno qualsiasi degli elementi seguenti:Each row in the Call Stack window is called a stack frame and represents any one of the following items:

  • Il percorso di esecuzione corrente.The current execution location.

  • Una chiamata da un modulo a un altro.A call from one module to another.

  • Una chiamata da una finestra dell'editor a un modulo Transact-SQLTransact-SQL .A call from an editor window to a Transact-SQLTransact-SQL module.

    L'ordine dello stack è inverso rispetto all'ordine di chiamata dei moduli.The order of the stack is the reverse of that in which the modules were called. La posizione di esecuzione corrente si trova in cima allo stack, mentre la chiamata originale si trova in fondo.The current execution location is at the top of the stack and the original call at the bottom. Una freccia gialla sul margine sinistro dello stack frame identifica il frame nel quale il debugger ha sospeso l'esecuzione.A yellow arrow on the left margin of the stack frame identifies the frame in which the debugger paused execution.

    Nella colonna Nome sono registrate le informazioni seguenti:The Name column records the following information:

  • Il modulo di origine che contiene la riga di codice che ha eseguito la chiamata al livello successivo.The source module that contains the line of code that called down to the next level.

  • La riga di codice che ha chiamato il modulo successivo nello stack.The line of code that called the next module on the stack.

  • Se la chiamata è diretta a una stored procedure o una funzione che accetta parametri, vengono elencati anche i nomi, i tipi di dati e i valori di tutti i parametri.If the call went to a stored procedure or function that took parameters, the names, data types, and values of all the parameters are also listed.

    Le espressioni nelle finestre Variabili locali, Espressione di controlloe Controllo immediato vengono valutate per lo stack frame corrente.The expressions in the Locals, Watch, and QuickWatch windows are evaluated for the current stack frame. Per impostazione predefinita, lo stack frame corrente è il frame in cima allo stack, dove il debugger ha sospeso l'esecuzione.By default, the current stack frame is the top frame in the stack, where the debugger paused execution. Se si specifica un altro stack frame come frame corrente, le espressioni nelle finestre Variabili locali, Espressione di controlloe Controllo immediato vengono rivalutate per il nuovo stack frame.When you specify another stack frame as the current frame, the expressions in the Locals, Watch, and QuickWatch windows are reevaluated for the new stack frame. È possibile cambiare lo stack frame corrente facendo doppio clic su un frame oppure facendo clic su un frame e selezionando Passa al frame.You can change the current stack frame by either by double-clicking a frame or clicking a frame and selecting Switch To Frame. A questo punto, le espressioni nelle finestre Variabili locali, Espressione di controlloe Controllo immediato vengono rivalutate per il nuovo frame.At that point, the expressions in the Locals, Watch, and QuickWatch windows are reevaluated for the new frame. La presenza di una freccia verde sul margine sinistro dello stack frame identifica lo stack frame corrente, nei casi in cui lo stack frame corrente non è quello in cima allo stack.Whenever the current stack frame is not the top frame in the stack, a green arrow on the left margin of the stack frame identifies the current stack frame.

    Quando si fa clic con il pulsante destro del mouse su uno stack frame e si seleziona Vai a codice sorgente, il codice per quel frame viene visualizzato in una finestra dell'editor di query.When you right-click a stack frame and select Go To Source Code, the code for that frame is displayed in a Query Editor window. Quel frame tuttavia non diventa il frame corrente e il contenuto delle finestre Variabili locali, Espressione di controlloe Controllo immediato non cambia.However, that frame is not made the current frame, and the contents of the Locals, Watch, and QuickWatch windows are not changed.

Informazioni di sistema e risultati di Transact-SQLSystem Information and Transact-SQL Results

I messaggi di stato e di evento del debugger vengono elencati nella finestra Output del debugger.The debugger lists its status and event messages in the Output window. Tra le informazioni visualizzate vi sono ad esempio il collegamento del debugger ad altri processi o il termine dei thread del debugger.This includes information such as when the debugger attaches to other processes or when debugger threads end.

In modalità di debug, le schede Risultati e Messaggi sono ancora attive nell'editor di query.While in debug mode, the Results and Messages tabs are still active in the Query Editor. La scheda Risultati continua a visualizzare i set dei risultati delle istruzioni Transact-SQLTransact-SQL che vengono eseguite durante una sessione di debug.The Results tab continues to display the result sets from the Transact-SQLTransact-SQL statements that are executed during a debugging session. La scheda Messaggi continua a visualizzare messaggi di sistema, ad esempio "Righe interessate xx " e l'output delle istruzioni PRINT e RAISERROR.The Messages tab continues to display system messages, such as xx Rows Affected and the output of PRINT and RAISERROR statements.

Vedere ancheSee Also

finestra Variabili locali Locals Window
finestra Espressioni di controllo Watch Window
Finestra di dialogo Controllo immediato QuickWatch Dialog Box
Finestra Punti di interruzione Breakpoints Window
Finestra Stack di chiamate Call Stack Window
Finestra Thread Threads Window
Finestra Output Output Window
Debugger Transact-SQL Transact-SQL Debugger