Пошаговое руководство. Отладка определенной пользователем функции T-SQL
Обновлен: Ноябрь 2007
Этот раздел применим к:
Выпуск |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Экспресс-выпуск |
||||
Standard |
||||
Pro и Team |
Условные обозначения таблицы:
Применяется |
|
Не применяется |
|
Команда или команды, скрытые по умолчанию. |
В данном примере используется существующая в базе данных AdventureWorks определенная пользователем функция (UDF) с именем ufnGetStock. Данная функция возвращает число имеющихся в наличии элементов для указанного ProductID.
В примере создается хранимая процедура, несколько раз вызывающая UDF. Хранимая процедура вызывает UDF с различными параметрами, поэтому можно пройти по другим путям выполнения через UDF. Также пример иллюстрирует переход от одного объекта T-SQL (хранимая процедура) к другому (функция). Шаги аналогичны представленным в разделе Пошаговое руководство. Отладка хранимой процедуры T-SQL.
Также можно провести прямую отладку базы данных путем пошагового выполнения функции в Обозревателе сервера.
Отладка функции, определенной пользователем
В новом проекте SQL Server установите соединение с учебной базой данных AdventureWorks. Дополнительные сведения см. в разделе Практическое руководство. Подключение к базе данных.
Создайте новую хранимую процедуру с использованием кода из раздела примера, указанного ниже, и назовите ее Test_ufnGetStock. Дополнительные сведения см. в разделе Практическое руководство. Разработка с помощью типа проекта SQL Server.
Задайте точки останова в Test_ufnGetStock. Это является необязательным, поскольку прямая отладка базы данных приводит к срабатыванию первой строки процедуры в качестве точки останова.
Задайте точки останова в UDF ufnGetStock.
Откройте исходный код для UDF, щелкнув правой кнопкой мыши по узлу Функции в окне Обозреватель сервера, затем щелкните два раза по значку ufnGetStock.
Щелкните левой кнопкой мыши в сером поле за оператором DECLARE, чтобы задать точку останова.
Выполните пошаговую отладку хранимой процедуры. Если для процедуры указаны параметры, то появляется диалоговое окно Вызов сохраненной процедуры с запросом их значений. В данном примере все параметры жестко кодируются внутри хранимой процедуры. Дополнительные сведения см. в разделе Практическое руководство. Пошаговая отладка объекта с использованием обозревателя сервера.
Попробуйте выполнить другие функции отладки.
Продолжайте пошаговую отладку кода с помощью клавиши F11 или кнопки Шаг с заходом. При повторном нажатии клавиши F11 в операторе SELECT можно выполнить шаг с заходом в UDF. Продолжайте пошаговую отладку UDF до возвращения к хранимой процедуре.
Можно просмотреть другие пути выполнения в UDF, в зависимости от параметров ввода. Можно просмотреть значения переменных UDF в окне Локальные переменные или при наведении на них курсора.
Пример
Ниже представлен код для хранимой процедуры, которая вызывает функцию, определенную пользователем.
ALTER PROCEDURE Test_ufnGetStock
AS
SELECT dbo.ufnGetStock(1) as CurrentStock -- non-zero inventory
SELECT dbo.ufnGetStock(316) as CurrentStock -- zero inventory
SELECT dbo.ufnGetStock(5) as CurrentStock -- no such product