The Transact-SQL debugger interface consists of a tool bar, status bar, and a series of window panes. Many of these components have dual purposes, serving both as control and monitoring mechanisms.
Only limited functionality may be available from some of these components after a procedure has been completed or aborted. For example, you may not set breakpoints or scroll between entries in either of the variables windows when the procedure is not running.
The toolbar resides at the top of the debugger interface. It consists of a series of buttons that may be used to control the starting, stopping, and incremental progression of an executing procedure.
Source Code Window
The source code window displays the code from the procedure currently in scope. A yellow arrow indicates the next statement to be executed. Red bullets mark statements before which breakpoints have been set.
Parameter Variables Window
The parameter variables window displays the name, value, and type of each input and output variable for the current procedure. The values displayed here change as a running procedure sets or modifies its variables.
Parameter variables may be manually modified at any time while a procedure executes. Click a value to change and type the replacement text.
Local Variables Window
The behavior of the local variables window is analogous to that of the parameter variables window. By default, this window contains only variables defined within the current scope.
While executing within a nested procedure call, it is still possible to access the scope of higher level procedures. Click on any of the procedure names listed in the callstack window to view or modify elements of calling procedures.
The callstack window shows a list of active, or uncompleted, procedure calls. The top entry in the list is called the current procedure. This procedure determines the scope of variables in the local and parameter variable windows.
The callstack window helps trace the operation of a stored procedure as it executes a series of nested procedure calls. For example, a first procedure can call a second procedure, which in turn can call a third procedure. Nested calls such as these can complicate the debugging process. The callstack window keeps track of past calls and the current procedure.
The currently executing procedure can be identified by the presence of a yellow arrow in source code window. In order to view the point from which the parent procedure called the current one, click on the name listed below the current procedure in the callstack window. The source code window will then display the parent procedure's source along with a green arrow pointing to the line of code that called the current procedure.
Results Text Window
The results text window is used to display any output from your stored procedure. This area is also used to display server error messages.
The status bar, located at the bottom of the debugger's interface, contains read-only information about the current session. It lists the current state of execution (running, completed, or aborted), which host the debugger is connected to, which user it is logged on as, and the position of the cursor within the source code window.