Ограничения на команды и функции отладчика
Обновлен: Ноябрь 2007
Этот раздел применим для следующих версий.
Выпуск |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Экспресс-выпуск |
||||
Standard |
||||
Pro и Team |
Условные обозначения:
Применимо |
|
Неприменимо |
|
Команда или команды по умолчанию скрыты. |
Отладчик SQL предоставляет многие из основных функциональных возможностей отладки. При отладке SQL поддерживается большинство команд отладчика, таких как установка точек останова и пошаговое выполнение. В окне Локальные переменные можно просмотреть значения переменных и переданных параметров. Можно также переместить выражения в окно Контрольные значения для отслеживания их во время пошагового перехода или при выполнении процедуры.
Однако из-за наличия некоторых основных характеристик SQL, его отладка производится в разных средах. Некоторые ограничения отладки применяются только к отладке T-SQL или SQL CLR. Остальные ограничения применяются ко всем видам отладки SQL.
Основные ограничения на отладку SQL
Нельзя использовать функцию "Изменить и продолжить".
Нельзя использовать функцию "Выполнить до курсора" в окне Стек вызовов.
Пока обрабатывается оператор SQL, нельзя использовать команду "Прервать".
Выходные данные операторов SQL PRINT не появляются в отладчике или в панели Выходные данные БД.
AutoRollback нельзя использовать в Visual Studio. При воспроизведении ошибки, из-за которой произошло изменение данных, ее можно потерять, поскольку данные изменились.
Некоторые окна либо не доступны, либо не активны. К их числу относятся:
Память
Регистры
Дизассемблирование для T-SQL
Ограничения на отладку T-SQL
Не поддерживается наличие условий точки останова и фильтров.
Поскольку SQL не имеет реальной памяти или регистров, нельзя использовать окна Память или Регистры.
Нельзя использовать окно Задать следующий оператор для изменения последовательности выполнения. Необходимо соблюдать принципы управления потоком и порядок операторов кода SQL. В качестве искусственного приема можно разместить операторы управления вокруг блоков кода SQL и изменить значения переменных.
Нельзя получить доступ к переменным .Net Framework или свойствам за пределами объекта T-SQL.
Отобразится окно Интерпретация, но с его помощью будет невозможно произвести никаких действий, например, задать значение переменной или выполнить запрос базы данных.
Некоторые окна либо не доступны, либо не активны. К их числу относятся:
Дизассемблирование
Потоки
Регистры
Процессы
Модули
Ограничения на отладку SQL CLR
На одном сервере может происходить только один сеанс отладки SQL CLR, поскольку все этапы выполнения кода SQL CLR фиксируются во время выполнения отладки любого SQL CLR. В связи с этим пользователь отладчика для выполнения отладки SQL CLR должен обладать правами системного администратора SQL.
Отладку SQL CLR никогда не следует проводить на рабочем сервере. Процесс отладки SQL CLR связан с риском: отладчик SQL CLR может производить считывание из памяти процесса и запись в нее, а также выполнять произвольный код в серверном процессе. Это приводит к остановке всех управляемых потоков на сервере. Кроме того, SQL Server может прервать работу во время завершения сессии отладки.
К глобальным переменным SQL, например, @@ROWCOUNT, невозможно получить доступ из объекта CLR SQL.
В проект Visual Studio SQL Server можно добавить ссылки на подсеть библиотек классов платформы .NET Framework. Создать ссылки можно не на все сборки.