$$$TRIG

Назначение

Системная таблица $$$TRIG предназначена для хранения информации о триггерах БД.

Схема таблицы

Схема таблицы $$$TRIG приведена в таблице 55.

Таблица 55. Схема таблицы $$$TRIG
Имя столбцаТип данныхСодержание
$$$IDinteger

Системный идентификатор триггера.

$$$OWNERinteger

Идентификатор владельца (создателя) триггера.

$$$TABinteger

Для триггеров, настроенных на модификацию данных: системный идентификатор таблицы, для которой создан триггер.

Для триггеров, настроенных на системные события: либо системный идентификатор пользователя, для которого создан триггер (значение поля S31 из таблицы $$$USR), либо значение -1, которое означает FOR DATABASE.

$$$PROCinteger

Системный идентификатор хранимой процедуры, содержащей текст триггера.

$$$NAMEchar(66)

Имя триггера.

$$$INFObyte(320)

Описание триггера.


Структура записи

Структура записи TRIG приведена в таблице 56.

Таблица 56. Структура записи таблицы $$$TRIG
ПолеТипСодержание

NmrTrig

L_LONG

Системный идентификатор триггера. Соответствует столбцу $$$ID.

User_Id

L_LONG

Системный идентификатор владельца триггера. Поле S31 из таблицы $$$USR. Соответствует столбцу $$$OWNER.

Tab_Id

L_LONG

Системный идентификатор таблицы, для которой создан триггер. Поле S11 из таблицы $$$SYSRL. Соответствует столбцу $$$TAB.

Для триггеров, настроенных на системные события: либо системный идентификатор пользователя, для которого создан триггер (значение поля S31 из таблицы $$$USR), либо значение -1, которое означает FOR DATABASE.

Proc_Id

L_LONG

Системный идентификатор хранимой процедуры, содержащей текст триггера – ссылка на поле ID из таблицы $$$PROC. Соответствует столбцу $$$PROC.

NamTrig[66]

L_CHAR

Имя триггера. Соответствует столбцу $$$NAME.

OldRowName[66]

L_CHAR

Псевдоним для старой записи. Только для триггеров на каждую строку. Если псевдоним не задан, используется имя OLD. Это поле и все остальные поля, идущие ниже, соответствуют столбцу $$$INFO.

Примечание

Для триггеров, настроенных на системные события, не используется.

NewRowName[66]

L_CHAR

Псевдоним для новой записи. Только для триггеров на каждую строку. Если псевдоним не задан, используется имя NEW.

Примечание

Для триггеров, настроенных на системные события, не используется.

OldTableName[66]

L_CHAR

Псевдоним для старого названия таблицы. Только для триггеров на всю таблицу. Если псевдоним не задан, используется имя OLD. Только для триггеров на всю таблицу. Если псевдоним не задан, используется имя NEW.

Примечание

Для триггеров, настроенных на системные события, не используется.

NewTableName[66]

L_CHAR

Псевдоним для нового названия таблицы. В данной версии не используется.

Примечание

Для триггеров, настроенных на системные события, не используется.

Time

L_BYTE

Момент запуска триггера:

  • 1 – до заданной операции;

  • 2 – после заданной операции;

  • 4 – вместо заданной операции.

Action

L_BYTE

Маска операции триггера:

  • 1 – INSERT;

  • 2 – UPDATE;

  • 4 – UPDATE OF;

  • 8 – DELETE;

  • 16 – LOGON;

  • 32 – LOGOFF.

ForEach

L_BYTE

Режим запуска триггера:

  • 1 – при операции в каждой строке таблицы;

  • 2 – при выполнении оператора.

Примечание

Для триггеров, настроенных на системные события, не используется.

State

L_BYTE

Текущее состояние триггера:

  • 1 – подключен (активен);

  • 0 – отключен (неактивен).

Order

L_WORD

Очередность запуска данного триггера в списке идентичных триггеров.

ColMask[32]

L_BYTE

Маска столбцов, при обновлении которых должен срабатывать триггер. Только для триггеров на всю таблицу. Если псевдоним не задан, используется имя OLD.

Примечание

Для триггеров, настроенных на системные события, не используется.

Info[16]

L_BYTE

Первый байт этого массива используется при установках audit для данного триггера.

Rest[2]

L_BYTE

Не используется.