Оглавление  | Назад  | Вперед

Справочник по инструкциям и функциям InterBase SQL

ALTER TRIGGER

Описание
Синтаксис
Примеры
Смотри так же

Описание

ALTER TRIGGER изменяет определение существующего триггера. Если какие-либо аргументы инструкции ALTER TRIGGER пропущены, тогда они, по умолчанию, принимают текущие значения, которые определены инструкцией CREATE TRIGGER или последующей ALTER TRIGGER.

ALTER TRIGGER может изменить:

Триггер может быть изменен его создателем и пользователем SYSDBA.

Обратите внимание: Изменение триггера определено автоматически для CHECK ограничения таблицы, используйте ALTER TABLE, чтобы изменить определение ограничения.

К началу страницы...

Синтаксис

ALTER TRIGGER name
[ACTIVE | INACTIVE]
  [{BEFORE | AFTER} {DELETE | INSERT | UPDATE}]
  [POSITION number]
  [AS <trigger_body>] [terminator]
Аргумент Описание
name Имя существующего триггера.
ACTIVE Определяет, что действие триггера дает эффект, когда fired (по умолчанию).
INACTIVE Определяет, что действие триггера не дает эффекта.
BEFORE Определяет, что триггер fires перед ассоциированной операцией.
AFTER Определяет, что триггер fires после ассоциированной операцией.
DELETE | INSERT | UPDATE Определяет операцию над таблицей, с которой связывает триггер to fire.
POSITION number Определяет порядок в котором firing триггеры перед или после того же самого действия. number должен быть целым от 0 до 32767. Триггер с меньшим номером fire первым. Триггеры для того же самого действия, с тем же самым позиционным номером, буду fire в случайном порядке.
trigger_body Тело триггера, блок инструкций на языке процедур и триггеров. Смотри CREATE TRIGGER для полного описания.
terminator Терминатор, определенный для ISQL командой SET TERM, указывающий конец тела триггера. Необязателен, при изменении только заголовка триггера.

К началу страницы...

Примеры

Cледующая инструкция изменяет триггер SET_CUST_NO, делая его не активным. (а пассивным :))

ALTER TRIGGER SET_CUST_NO INACTIVE;

Следующая инструкция изменяет триггер SET_CUST_NO, чтобы вставлять строку в таблицу NEW_CUSTOMER для каждого нового заказчика:

SET TERM !! ;
ALTER TRIGGER SET_CUST_NO FOR CUSTOMER
BEFORE INSERT AS
  BEGIN
    NEW.CUST_NO = GEN_ID(CUST_NO_GEN, 1);
    INSERT INTO NEW_CUSTOMERS(NEW.CUST_NO, TODAY)
  END !!
SET TERM ; !!

К началу страницы...

Смотри так же:

К началу страницы...


Оглавление  | Назад  | Вперед