Изменение таблицы из собственных триггеров

Black Krok
Дата: 06.03.2007 10:26:50
Уважаемые эксперты, как я понял, изменять таблицу в теле строкового триггера, "повешенного" на ее же изменения, нельзя? И даже запрашивать ее SELECT`ом?

Это абсолютное требование? Задача в чем. Есть дерево объектов, занесенных в одну таблицу. У каждого "узла" есть пара некоторых данных. Скажем, дата начала действия и дата конца. Хотелось бы при измении любой из этих дат пересчитывать даты у "вышестоящих" "узлов". Например, дата начала действия - минимальная из подузлов, дата конца - максимальная.

Логично это делать из триггера. Причем не всегда, а тогда, когда меняется именно дата. Из-за этого не получается использовать операторный триггер. Пересчитывать все узлы всей таблицы при малейшем "чихе" не целесообразно.

Может, как-то можно это действие обойти? Я вообще поначалу надеялся, что триггера будут вызываться рекурсивно.....
Elic
Дата: 06.03.2007 10:28:54
softwarer
Дата: 06.03.2007 10:40:00
Black Krok
Это абсолютное требование?

Да, абсолютное.

Black Krok
Из-за этого не получается использовать операторный триггер.

Тем не менее, именно его и надо использовать. Точнее, для этого используется пара триггеров: строчный триггер накапливает в пакетной переменной "задания для обработки", а операторный их выполняет. При расписывании этого требуется определенная аккуратность.
Black Krok
Дата: 06.03.2007 11:54:24
Спасибо, попробую