Текущий архив: 2006.09.03;
Скачать: CL | DM;
Вниз
Триггеры на системных таблицах в InterBase Найти похожие ветки
← →
Vosik (2006-06-28 00:46) [0]Написанные пользователем триггеры для системных таблиц InterBase принимает, но
удалять и модифицировать отказывается, считая, что такие операции нарушат
целостность Б.Д. Сообщение при этом такое:
ISC ERROR CODE:335544342
ISC ERROR MESSAGE:
action cancelled by trigger (0) to preserve data integrity
cannot modify or erase a system trigger
Получается, что записывая в таблицу RBD$TRIGGERS новый триггер
( напр. для таблицы RDB$PROCEDURES ) система
не рискует, а удаляя его - рискует нарушить работу Б.Д.
Такой триггер невозможно ни отладить, ни удалить, ни отключить.
Вопрос: как удалить такой триггер?
← →
unknown © (2006-06-28 00:53) [1]
> Vosik (28.06.06 00:46)
> Написанные пользователем триггеры для системных таблиц InterBase
Что за извращения? Зачем нужны такие триггеры?
← →
PEAKTOP © (2006-06-28 01:00) [2]
> Написанные пользователем триггеры для системных таблиц ...
С ума сойти ...
← →
DrPass © (2006-06-28 02:20) [3]Подозреваю, что backup/restore спасет базу от этой ереси
← →
Johnmen © (2006-06-28 09:15) [4]
> Vosik (28.06.06 00:46)
> Вопрос: как удалить такой триггер?
Если уж занимаешься такой практической проктологией, то должен знать, что триггер убивается модификацией соотв.сист.таблиц.
← →
Vosik (2006-06-28 13:49) [5]
> триггер убивается модификацией соотв.сист.таблиц.
В данном случае любые попытки удалить или модифицировать триггер заканчиваютя безрезультатно. InterBase такой триггер принимает, очевидно не опасаясь за целостность Б.Д., а потом запрещает ЛЮБЫЕ действия с ним, включая манипуляции с таблицей триггеров. Вот это да - извращение. При том поле RDB$SYSTEM_FLAG в таблице RDB$TRIGGERS равно NULL .
← →
Sergey13 © (2006-06-28 13:52) [6]> [5] Vosik (28.06.06 13:49)
ИМХО, после грубого вмешательства в системные данные, грешно грешить на "извращения" сервера.
Страницы: 1 вся ветка
Текущий архив: 2006.09.03;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.231 c