Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

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

Описание

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

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

  • Только информацию заголовка, заключенную в activation status триггера, when it performs its actions, событие, которое fires триггер и порядок, в котором триггеры fires.
  • Только информацию тела: инструкции которые следуют за предложением AS.
  • Информацию заголовка и тела триггера. В этом случае новое определение триггера заменяет старое определение.

Триггер может быть изменен его создателем и пользователем 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 ; !!

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

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог