Поделиться через


Пошаговое руководство. Отладка триггера T-SQL

Обновлен: Ноябрь 2007

Этот раздел применим к:

Выпуск

Visual Basic

C#

C++

Web Developer

Экспресс-выпуск

Тема не применяется Тема не применяется Тема не применяется Тема не применяется

Standard

Тема не применяется Тема не применяется Тема не применяется Тема не применяется

Pro и Team

Тема применяется Тема применяется Тема применяется Тема применяется

Условные обозначения таблицы:

Тема применяется

Применяется

Тема не применяется

Не применяется

Тема применяется, но команда по умолчанию сокрыта

Команда или команды, скрытые по умолчанию.

Чтобы выполнить отладку триггера, установите точку останова в хранимой процедуре, которая вызовет срабатывание триггера, установите точку останова в триггере, затем продолжайте, следуя описаниям в разделе Пошаговое руководство. Отладка хранимой процедуры T-SQL.

В этом примере использована база данных AdventureWorks, которая содержит таблицу "Sales.Currency" с триггером UPDATE. В пример включается хранимая процедура, которая выполняет обновление строки в таблице, вызывая, таким образом, срабатывание триггера. Установив точки останова в триггере и выполняя хранимую процедуру с разными параметрами, можно будет пройти по различным путям выполнения в триггере.

ms165046.alert_note(ru-ru,VS.90).gifПримечание.

Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке, в зависимости от текущих параметров или выпуска. Чтобы изменить параметры, в меню Сервис выберите команду Параметры импорта и экспорта. Дополнительные сведения см. в разделе Параметры Visual Studio.

Отладка триггера SQL

  1. В новом проекте SQL Server установите соединение с учебной базой данных AdventureWorks. Дополнительные сведения см. в разделе Практическое руководство. Подключение к базе данных.

  2. Создайте новую хранимую процедуру с помощью кода из первого примера в разделе ниже и назовите эту процедуру UpdateCurrency_T_SQL. Дополнительные сведения см. в разделе Практическое руководство. Разработка с помощью типа проекта SQL Server.

  3. Задайте точки останова в UpdateCurrency_T_SQL. Это является необязательным, поскольку прямая отладка базы данных приводит к срабатыванию первой строки процедуры в качестве точки останова.

  4. Задайте точки останова для триггера.

    1. Чтобы открыть исходный код триггера, щелкните правой кнопкой мыши узел Таблицы, затем щелкните правой кнопкой мыши узел для таблицы Sales.Currency, затем дважды щелкните значок для триггера с именем uCurrency.

    2. Щелкните левой кнопкой мыши серое поле, следующее за оператором SET NOCOUNT ON, чтобы установить точку останова в триггере. Этот шаг является обязательным: если не установить точку останова в триггере, то при попытке выполнить пошаговую отладку кода триггера, этот код будет пропущен.

  5. Выполните пошаговую отладку хранимой процедуры. Дополнительные сведения см. в разделе Практическое руководство. Пошаговая отладка объекта с использованием обозревателя сервера.

    Откроется диалоговое окно Выполнение хранимой процедуры с запросом значений параметров.

  6. Установите следующие значения параметров:

    1. @currencyCode = AAA

    2. @name = произвольное значение, например My Test Name.

    Желтая стрелка указателя инструкций появляется на строке SET @mynvarchar = @@VERSION, которая является первой исполняемой строкой кода в хранимой процедуре.

  7. Попробуйте выполнить другие функции отладки.

    1. Продолжайте пошаговую отладку кода с помощью клавиши F11 или кнопки Шаг с заходом.

      У оператора UPDATE при повторном нажатии клавиши F11 начинается пошаговая отладка триггера.

    2. Выполняйте пошаговую отладку триггера до выхода в хранимую процедуру, продолжайте до окончания.

  8. В окне Обозреватель сервера можно удостовериться, что данные были вставлены путем нажатия правой кнопкой мыши узла 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

См. также

Основные понятия

Отладка SQL

Ссылки

Обозреватель серверов/обозреватель баз данных