Просмотр сведений отладчика Transact-SQL
Каждый раз, когда отладчик приостанавливает выполнение на определенной инструкции Transact-SQL, с текущем состоянием выполнения можно ознакомиться при помощи различных окон отладчика.
Окна отладчика
В режиме отладки внизу основного окна SQL Server Management Studio отладчик открывает два окна. Все сведения отладчика отображаются в этих двух окнах. В каждом окне отладчика есть вкладки, определяющие, какой набор сведений отображается в данном окне. В левом окне отладчика есть вкладки Локальные значения, Просмотр значений1, Просмотр значений2, Просмотр значений3 и Просмотр значений4. В правом окне отладчика есть вкладки Стек вызовов, Потоки, Точки останова, Окно команд и Вывод.
![]() |
---|
В приведенном описании имеется в виду расположение окон отладчика по умолчанию. Вкладки можно перетаскивать из одного окна в другое, а также можно отменить закрепление вкладки и создать новое окно, которое можно поместить в любое место. |
По умолчанию не все эти вкладки или окна активны. Нужное окно можно открыть одним из следующих способов.
В меню Отладка выбрать пункт Окна, а затем выбрать требуемое окно.
На панели инструментов Отладка нажать кнопку Точки останова, а затем выбрать требуемое окно.
Выражение языка Transact-SQL
Выражения — это предложения Transact-SQL, значением которых является отдельное скалярное выражение, например, переменная или параметр. В левом окне отладчика могут отображаться значения данных, назначенные на текущий момент выражениям, в максимум пяти вкладках или окнах: Локальные значения, Просмотр значений1, Просмотр значений2, Просмотр значений3 и Просмотр значений4.
В окне Локальные значения отображаются сведения о локальных переменных в текущей области отладчика Transact-SQL. Набор выражений, которые показаны в окне Локальные значения, изменяется по мере прохождения отладчиком разных частей кода.
В четырех окнах Просмотр значений отображаются сведения о выбранных переменных и выражениях. Набор выражений, которые показаны в окнах Просмотр значений, изменяется только, если добавить выражения в список или удалить их из него.
В окне Контрольное значение можно просмотреть значение выражения Transact-SQL, а затем сохранить это выражение в окно Просмотр значений. Чтобы выделить выражение в окне Контрольное значение, выберите выражение или введите его имя в поле Выражение.
Чтобы добавить выражение в окно Просмотр значений, можно либо нажать кнопку Добавить контрольное значение в диалоговом окне Контрольное значение, либо ввести имя выражения в столбце Имя пустой строки в окне Просмотр значений.
Задать значение данных для переменных в окнах Локальные значения, Просмотр значений или Контрольное значение можно, щелкнув строку правой кнопкой мыши и выбрав команду Изменить значение. Столбцы Значение в окне Локальные значения, окне Просмотр значений, а также в диалоговом окне Контрольное значение допускают текстовые, XML и HTML визуализаторы данных. Визуализаторы представлены @@в виде лупы для подсказок по данным с правой стороны столбца Значения. Визуализаторы можно использовать для просмотра текстовых, XML или HTML-значений данных в программах, которые соответствуют типу данных, например, просматривать XML-файлы в окне обозревателя.
Точки останова
Окно Точки останова можно использовать для просмотра установленных точек останова и управления ими. Дополнительные сведения см. в разделе Пошаговое выполнение кода Transact-SQL.
Стеки вызовов
В окне Стек вызовов отображается текущее место выполнения, а также сведения о том, как выполнение прошло от исходного окна редактора через все модели Transact-SQL (функции, хранимые процедуры и триггеры) до текущего положения выполнения. Каждая строка в окне Стек вызовов называется фрагментом стека и представляет один из следующих элементов:
текущее положение выполнения;
вызов от одного модуля к другому;
вызов от окна редактора к модулю Transact-SQL.
Порядок модулей в стеке является обратным порядку, в котором модули вызывались. Текущее положение выполнения находится вверху стека, а начальный вызов — внизу. Желтая стрелка на левом краю фрагмента стека обозначает кадр, на котором отладчик приостанавливает выполнение.
В столбце Имя записываются следующие сведения.
Исходный модуль, содержащий строку кода, которая произвела вызов следующего уровня.
Строка кода, которая вызвала следующий модуль в стеке.
Если была вызвана хранимая процедура или функция, которая приняла параметры, то также отображаются имена, типы данных и значения всех параметров.
Выражения в окнах Локальные значения, Просмотр значений и Контрольное значение вычисляются для текущего фрагмента стека. По умолчанию текущий фрагмент стека является верхним фрагментом в стеке, на котором отладчик приостановил выполнение. При указании другого фрагмента стека в качестве текущего выражения в окнах Локальные значения, Просмотр значений и Контрольное значение вычисляются для нового фрагмента стека. Чтобы изменить текущий фрагмент стека нужно либо дважды щелкнуть фрагмент, либо щелкнуть фрагмент и выбрать @@Переключиться на фрагмент. После этого выражения в окнах Локальные значения, Просмотр значений и Контрольное значение будут вычислены для нового фрагмента. Когда текущий фрагмент стека не является верхним в стеке, зеленая стрелка на левом краю фрагмента стека обозначает текущий фрагмент стека.
Если щелкнуть фрагмент стека правой кнопкой мыши и выбрать @@Перейти к исходному коду, код для этого фрагмента появится в окне редактора запросов. Однако этот кадр не становится текущим, а содержимое окон Локальные значения, Просмотр значений и Контрольное значение не изменяется.
Системные сведения и результаты Transact-SQL
Отладчик отображает свое состояние и сообщения о событиях в окне Вывод. Сюда входят такие сведения, как время прикрепления отладчика к другим процессам или время завершения потока отладчика.
Когда редактор запросов находится в режиме отладки, вкладки Результаты и Сообщения остаются активными. На вкладке Результаты продолжают отображаться результирующие наборы от инструкций Transact-SQL, которые выполняются во время сеанса отладки. На вкладке Сообщения продолжают отображаться такие сообщения, как xx строк затронуто, а также вывод инструкций PRINT и RAISERROR.