Пошаговое руководство. Отладка триггера T-SQL
Обновлен: Ноябрь 2007
Этот раздел применим к:
Выпуск |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Экспресс-выпуск |
||||
Standard |
||||
Pro и Team |
Условные обозначения таблицы:
Применяется |
|
Не применяется |
|
Команда или команды, скрытые по умолчанию. |
Чтобы выполнить отладку триггера, установите точку останова в хранимой процедуре, которая вызовет срабатывание триггера, установите точку останова в триггере, затем продолжайте, следуя описаниям в разделе Пошаговое руководство. Отладка хранимой процедуры T-SQL.
В этом примере использована база данных AdventureWorks, которая содержит таблицу "Sales.Currency" с триггером UPDATE. В пример включается хранимая процедура, которая выполняет обновление строки в таблице, вызывая, таким образом, срабатывание триггера. Установив точки останова в триггере и выполняя хранимую процедуру с разными параметрами, можно будет пройти по различным путям выполнения в триггере.
Примечание. |
---|
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке, в зависимости от текущих параметров или выпуска. Чтобы изменить параметры, в меню Сервис выберите команду Параметры импорта и экспорта. Дополнительные сведения см. в разделе Параметры Visual Studio. |
Отладка триггера SQL
В новом проекте SQL Server установите соединение с учебной базой данных AdventureWorks. Дополнительные сведения см. в разделе Практическое руководство. Подключение к базе данных.
Создайте новую хранимую процедуру с помощью кода из первого примера в разделе ниже и назовите эту процедуру UpdateCurrency_T_SQL. Дополнительные сведения см. в разделе Практическое руководство. Разработка с помощью типа проекта SQL Server.
Задайте точки останова в UpdateCurrency_T_SQL. Это является необязательным, поскольку прямая отладка базы данных приводит к срабатыванию первой строки процедуры в качестве точки останова.
Задайте точки останова для триггера.
Чтобы открыть исходный код триггера, щелкните правой кнопкой мыши узел Таблицы, затем щелкните правой кнопкой мыши узел для таблицы Sales.Currency, затем дважды щелкните значок для триггера с именем uCurrency.
Щелкните левой кнопкой мыши серое поле, следующее за оператором SET NOCOUNT ON, чтобы установить точку останова в триггере. Этот шаг является обязательным: если не установить точку останова в триггере, то при попытке выполнить пошаговую отладку кода триггера, этот код будет пропущен.
Выполните пошаговую отладку хранимой процедуры. Дополнительные сведения см. в разделе Практическое руководство. Пошаговая отладка объекта с использованием обозревателя сервера.
Откроется диалоговое окно Выполнение хранимой процедуры с запросом значений параметров.
Установите следующие значения параметров:
@currencyCode = AAA
@name = произвольное значение, например My Test Name.
Желтая стрелка указателя инструкций появляется на строке SET @mynvarchar = @@VERSION, которая является первой исполняемой строкой кода в хранимой процедуре.
Попробуйте выполнить другие функции отладки.
Продолжайте пошаговую отладку кода с помощью клавиши F11 или кнопки Шаг с заходом.
У оператора UPDATE при повторном нажатии клавиши F11 начинается пошаговая отладка триггера.
Выполняйте пошаговую отладку триггера до выхода в хранимую процедуру, продолжайте до окончания.
В окне Обозреватель сервера можно удостовериться, что данные были вставлены путем нажатия правой кнопкой мыши узла Sales.Currency в узле Таблицы и последующего нажатия команды Показать данные таблицы.
Пример
Это код для хранимой процедуры, которая вызывает срабатывание триггера.
ALTER PROCEDURE dbo.UpdateCurrency_T_SQL
(
@currencyCode nvarchar(3),
@Name nvarchar(50)
)
AS
SET NOCOUNT ON
UPDATE Sales.Currency
SET Name = @Name
WHERE CurrencyCode = @currencyCode
RETURN