Основы языка TRANSACT SQL. Казакова И.А. - 144 стр.

UptoLike

Составители: 

143
Триггеры создаются с помощью команды CREATE TRIGGER:
CREATE TRIGGER [имя_триггера]
ON имя_таблицы
{ FOR | AFTER | INSTEAD OF} {[INSERT] [,] [UPDATE] [,]
[DELETE]}
[WITH ENCRYPTION]
AS SQL_операторы;
Неправильно написанные триггеры могут привести к серьез-
ным проблемам, таким, например, как появление «мертвых» блоки-
ровок. Триггеры способны длительное время блокировать множест-
во ресурсов, поэтому следует обратить особое внимание на сведе-
ние к минимуму конфликтов доступа.
В большинстве СУБД действуют следующие ограничения:
в теле триггера нельзя использовать операции создания,
удаления и изменения объектов базы данных;
нельзя изменять права доступа к объектам базы данных, т.е.
выполнять команду GRAND или REVOKE;
нельзя создать триггер для представления (VIEW);
триггер не может возвращать никаких значений, он запуска-
ется автоматически сервером и не может связаться самостоятельно
ни с одним клиентом;
внутри триггера не допускается выполнение восстановления
резервной копии БД или журнала транзакций.
Выполнение этих команд не разрешено, так как они не могут быть
отменены в случае отката транзакции, в которой выполняется триггер.
В триггерах могут использоваться хранимые процедуры.
Контрольные вопросы
1. Что такое триггер?
2. Каковы компоненты триггера?
3. Триггеры каких типов существуют?
4. Привести пример использования триггера при работе с БД.
5. Допускается ли внутри триггера применение команд управ-
ления транзакциями?
6. В чем преимущества использования триггеров?
     Триггеры создаются с помощью команды CREATE TRIGGER:
       CREATE TRIGGER [имя_триггера]
       ON имя_таблицы
      { FOR | AFTER | INSTEAD OF} {[INSERT] [,] [UPDATE] [,]
[DELETE]}
       [WITH ENCRYPTION]
       AS SQL_операторы;
      Неправильно написанные триггеры могут привести к серьез-
ным проблемам, таким, например, как появление «мертвых» блоки-
ровок. Триггеры способны длительное время блокировать множест-
во ресурсов, поэтому следует обратить особое внимание на сведе-
ние к минимуму конфликтов доступа.
      В большинстве СУБД действуют следующие ограничения:
       в теле триггера нельзя использовать операции создания,
удаления и изменения объектов базы данных;
       нельзя изменять права доступа к объектам базы данных, т.е.
выполнять команду GRAND или REVOKE;
       нельзя создать триггер для представления (VIEW);
       триггер не может возвращать никаких значений, он запуска-
ется автоматически сервером и не может связаться самостоятельно
ни с одним клиентом;
       внутри триггера не допускается выполнение восстановления
резервной копии БД или журнала транзакций.
      Выполнение этих команд не разрешено, так как они не могут быть
отменены в случае отката транзакции, в которой выполняется триггер.
      В триггерах могут использоваться хранимые процедуры.

                     Контрольные вопросы
     1. Что такое триггер?
     2. Каковы компоненты триггера?
     3. Триггеры каких типов существуют?
     4. Привести пример использования триггера при работе с БД.
     5. Допускается ли внутри триггера применение команд управ-
ления транзакциями?
     6. В чем преимущества использования триггеров?

                                143