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


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

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

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

Выпуск

Visual Basic

C#

C++

Web Developer

Express

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

Standard

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

Pro и Team

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

Обозначения:

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

Применяется

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

Неприменимо

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

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

Этот пример описывает отладку CLR-триггера SQL. В разделе используется таблица Contact учебной базы данных AdventureWorks, одной из баз данных, которые устанавливаются вместе с SQL Server 2005. В примере в таблице Contact создается новый CLR-триггер вставки и выполняется шаг с заходом в него.

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

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

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

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

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

  3. Добавьте сценарий, который тестирует триггер, заставляя его срабатывать. В обозревателе решений щелкните правой кнопкой мыши каталог Сценарии тестирования, выберите пункт Добавить сценарий тестирования и вставьте код из второго примера в нижеприведенном разделе. Сохраните файл, дав ему имя truContact.sql. Щелкните правой кнопкой мыши имя файла и выберите Использовать как сценарий отладки по умолчанию.

  4. Установите точки останова в iContact.cs и выберите в меню Отладка команду Запуск, чтобы скомпилировать, развернуть и провести модульный тест проекта. Появление указателя инструкций, имеющего вид желтой стрелки, на точке останова означает, что выполняется отладка триггера.

  5. Попробуйте использовать различные функции отладки.

    1. Перейдите к оператору, создающему экземпляр SqlTriggerContext.

    2. Откройте окно Локальные. Обратите внимание, что можно открыть переменную triggContext, которая относится к классу SqlTriggerContext, и исследовать ее члены. Дополнительные сведения см. в разделе Практическое руководство. Использование окон переменных отладчика.

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

      Сервер может не отражать изменение значений переменных в окнах отладчика. Дополнительные сведения см. в разделе Ограничения по отладке SQL.

    3. В меню Отладка выберите Шаг с заходом, чтобы перейти на одну строку внутрь хранимой процедуры. Обратите внимание, что при выполнении для значения переменнойsqlP был создан экземпляр типаSqlPipe.

    4. Откройте окно Контрольные значения. Перетащите переменную sqlP в любое место в окне Контрольные значения. Теперь переменная добавлена в список контролируемых переменных. Дополнительные сведения см. в разделе Практическое руководство. Использование окон переменных отладчика.

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

      Значения переменных в окне Контрольные значения также можно изменять.

    5. В текстовом редакторе щелкните правой кнопкой мыши последнюю строку и выберите команду Вставить точку останова.

    6. В меню Отладка выберите Продолжить, и отладчик выполнит код до новой точки останова.

  6. Чтобы закончить отладку триггера, снова выберите Продолжить. В окне Вывод появится сообщение о том, что триггер был успешно развернут, и будет выведен результат выполнения команд в файле truContact.sql.

Пример

Это код, необходимый для создания триггера, используемого в этом примере.

using System;
using System.Data;
using System.Data.Sql;
using Microsoft.SqlServer.Server;


public partial class Triggers
{
      // Enter existing table or view for the target and uncomment the attribute line.
      [Microsoft.SqlServer.Server.SqlTrigger (Name="Trigger1", Target="primes", Event="FOR UPDATE")]
      public static void Trigger1()
      {
            SqlTriggerContext triggContext = SqlContext.TriggerContext;
            SqlPipe sqlP = SqlContext.Pipe;
            sqlP.Send("primes inserted!");
      }
}

Это сценарий тестирования, который заставит триггер срабатывать.

UPDATE Person.Contact SET MiddleName = 'A' WHERE ContactID = 8

См. также

Задачи

Практическое руководство. Создание и запуск триггера CLR SQL Server

Другие ресурсы

Отладка баз данных SQL в среде CLR