FirebirdSQL logo
 Операторы обработки данных (DML)Встроенные скалярные функции 

Переменные доступные в пространстве имён DDL_TRIGGER

Во время работы DDL триггера доступно пространство имён DDL_TRIGGER для использования в функции RDB$GET_CONTEXT.Его использование также допустимо в хранимых процедурах и функциях, вызванных DDL триггерами.

Контекст DDL_TRIGGER работает как стек.Перед возбуждением DDL триггера, значения, относящиеся к выполняемой команде, помещаются в этот стек.После завершения работы триггера значения выталкиваются.Таким образом, в случае каскадных DDL операторов, когда каждая пользовательская DDL команда возбуждает DDL триггер, и этот триггер запускает другие DDL команды, с помощью EXECUTE STATEMENT, значения переменных в пространстве имен DDL_TRIGGER будут соответствовать команде, которая вызвала последний DDL триггер в стеке вызовов.

Переменные доступные в пространстве имён DDL_TRIGGER:* EVENT_TYPE — тип события (CREATE, ALTER, DROP)
  • OBJECT_TYPE — тип объекта (TABLE, VIEW и д.р.)

  • DDL_EVENT — имя события (<ddl event item>),

    где <ddl event item> = EVENT_TYPE || ' ' || OBJECT_TYPE

  • OBJECT_NAME — имя объекта метаданных

  • SQL_TEXT — текст SQL запроса

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

Для получения информации о создании триггеров см.CREATE TRIGGER,CREATE OR ALTER TRIGGER,RECREATE TRIGGER в главе “Операторы определения данных DDL”.