Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Создание триггера

Читайте также:
  1. I. Создание баз данных
  2. Power Point Создание однослайдовой презентации
  3. АВТОМАТИЧЕСКОЕ СОЗДАНИЕ ОГЛАВЛЕНИЯ
  4. ВОЕННАЯ РЕФОРМА ПЕТРА I. СОЗДАНИЕ РЕГУЛЯРНОЙ РУССКОЙ АРМИИ
  5. ВОЕННЫЕ РЕФОРМЫ В РОССИИ ВО ВТОРОЙ ПОЛОВИНЕ Х1Х-НАЧАЛЕ XX ВВ. СОЗДАНИЕ МАССОВОЙ АРМИИ
  6. ВТОРОЙ ЭТАП- создание структуры
  7. Второй этап: Дизайн сладов и создание визуального ряда.
  8. Лабораторная работа № 4. Создание, сохранение и использование шаблонов в текстовом процессоре MS Word
  9. Лекция 10. Тема: Создание фундамента компании.
  10. ЛЕКЦИЯ 7 СОЗДАНИЕ ДРАМАТУРГИИ НОМЕРА. СЦЕНАРНО-РЕЖИССЕРСКИЙ ЗАМЫСЕЛ

Триггер создается оператором CREATE TRIGGER. Рассмотрим его синтаксис:

CREATE TRIGGER [владелец.] имя_триггера

ON [владелец.] имя_таблицы │имя_представления

FOR (AFTER│ INSTEAD OF} (INSERT│UPDATE I DELETE}

[WITH ENCRYPTION]

AS оператор_SQL

Таблица может иметь произвольное количество триггеров любых типов (INSERT, UPDATE или DELETE). ПО умолчанию триггер выполняется после из­менения данных, однако, если указать параметр INSEAD OF, то создается триггер, выполняющийся вместо изменения данных.

Каждая операция (INSERT, UPDATE и DELETE) может вызывать выполнение произвольного количества триггеров. С единственным ограничением ­имена триггеров, вызываемых одной операцией, должны быть уникальными. Изменить триггер можно, удалив его и создав заново в другом виде или при помощи оператора ALTER TRIGGER. При удалении таблицы, имеющей триг­геры, все они также удаляются.

При создании триггеров необходимо придерживаться следующих правил:

  • Триггеры создаются для поддержания целостности данных, ссылочной целостности и рабочих правил.
  • Нельзя создавать триггеры для временных таблиц. Однако триггеры могут к таким таблицам обращаться так же, как и к представлениям.
  • Триггер не может возвращать результирующих наборов данных. Это зна­чит, что к использованию оператора SELECT при его создании нужно подходить крайне осторожно. Обычно в этих случаях используется оператор SELECT с директивой IF EXISTS.
  • С помощью опции WITH ENCRYPTION исходный код триггера, хранящийся в таблице syscomments, можно зашифровать.
  • Операторы WRITETEXT не инициализируют триггеры. Они используются для изменения данных типа Text или Image, а эти изменения не заносят­ся в журнал транзакций.
  • В триггерах нельзя использовать следующие операторы: все операторы CREATE, все операторы DROP, ALTER TAВLE, ALTER DATAВASE, TRUNCATE TABLE, GRANT и REVOKE, RECONFIGURE, LOAD DATAВASE или TRANSACTION, UPDATE STATISTICS, SELECT INTO и все операторы DISK.
  • Операторы отмены транзакций, входящие в состав триггера, могут стать причиной непредсказуемого поведения операторов вызывающей программы.

Триггеры также применяются для поддержки правил. Конечно, для этого час­то достаточно использования ограничений ANSI, значений по умолчанию или пользовательских типов данных, однако при необходимости обращения к другим таблицам триггеры оказываются совершенно незаменимыми. Кроме того, при помощи триггеров реализуется механизм ссылочной целостности. Нужно отметить, что триггеры изначально были разработаны именно для этой цели. Они особенно эффективны при каскадном удалении и обновлении дан­ных. При изменении данных условия триггеров проверяются в последнюю очередь, а в начале проверяются ограничения. То есть если условие ограниче­ния нарушено, то операция отменяется, и триггер не срабатывает.

Отдельное внимание стоит уделить триггерам типа INSTEAD OF. Если триггер создается с этой опцией, то код триггера выполняется не после заданной пользователем (или удаленной программой) команды, а вместо нее. Напри­мер, разумно использовать триггеры INSTEAD OF для сообщений о невоз­можности удаления какого-либо объекта. Разумеется, эту функцию можно реализовать и с помощью триггера AFTER, однако в этом случае придется отменять уже проделанную операцию, что неприемлемо для высоко загру­женных систем, где ведется строгий контроль производительности.

 


<== предыдущая страница | следующая страница ==>
ТЕМА 4.2. ХРАНИМЫЕ ПРОЦЕДУРЫ И ТРИГГЕРЫ | Хранимые процедуры. Назначение

Дата добавления: 2014-03-11; просмотров: 328; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.002 сек.