Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.28;
Скачать: CL | DM;

Вниз

Update без выполнения триггеров   Найти похожие ветки 

 
Апач   (2004-02-27 06:40) [0]

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


 
Zacho ©   (2004-02-27 07:13) [1]

Нет. Но можно перед update сделать ALTER TRIGGER name INACTIVE , а после - ALTER TRIGGER name ACTIVE
А вообще лучше опиши подробнее задачу, а то как-то очень подозрительно выглядит это.


 
Zacho ©   (2004-02-27 07:27) [2]

Добавлю: сделать ALTER TRIGGER в триггере - не получиться. Можешь попробовать поиздеваться над системными таблицами (см. главу "System tables and views" в Language Reference), но не советую.
Мне все-таки кажется, что у тебя или неправильно спроектирована БД, или непраильно поставлена задача, или ты ее пытаешься решить неравильным способом. Так что лучше подробнее опиши задачу.


 
Апач   (2004-02-27 08:07) [3]

Задача следующая

Есть таблица с полями

 Основная таблица(I)
1 SI_ID - уникальный ID
2 NAME - нименовани СИ
.....
5 ID_Podr - подразделение на которые ложатся затраты

 Таблица комплектов(II)
1 KOMPL_ID - уникальный ID
2 NAME - наименование

 Таблица спецификации комплекта(III)
1  KOMPL_ID
2  SI_ID

Так вот сама задача
На таблицу (I) вешается тригер после обновления записи проверяется в какои комплект входит это средство измерения по таблице (III) по ней же определяются все средства измерения которые входят в етот же комплект ноходим ети же записи в таблице (I) и и обновляем там поле ID_Podr чтобы затраты по одному комплекту относились к одному подразделению. Следует заметить что не все записи могут входить в какие либо комплекты поетому присутствие поля ID_Podr в таблице (I) обязательно.
Поетому тригер после обновления таблицы (I) вызывает сам себя,
можно повесить конечно кучу условий как я сделал, но я просто подумал а нет ли у update какогонибуть параметра который бы отключил бы тригер который вызывает етот update...

Вот пожалуй все :) незнаю понятно непонятно...


 
Апач   (2004-02-27 08:10) [4]

ах да совсем забыл написать
пробывал писать

ALTER TRIGGER <имя тригера> INACTIVE

.....

ALTER TRIGGER <имя тригера> ACTIVE

ругается на синтаксическую ошибку


 
Zacho ©   (2004-02-27 08:14) [5]

Не очень внимательно вникал, но может достаточно одного условия IF (NEW.ID_PODR<>OLD.ID_PODR) THEN ..

> Апач   (27.02.04 08:10) [4]

Естественно, в триггерах и ХП операторы DDL не доступны.


 
Апач   (2004-02-27 08:18) [6]

Захо ты абсолютно прав
Так мы и сделали
но я думал что тригер отключить будет красивее и потом другим понятнее :)
Хотя боюсь что я тока зря трачу время
а опрераторы DLL мы не используем приципиально :)


 
Zacho ©   (2004-02-27 08:23) [7]

Не DLL, а DDL :)
ALTER TRIGGER относится именно к DDL :)



Страницы: 1 вся ветка

Текущий архив: 2004.03.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.041 c
1-1078725988
DRUID
2004-03-08 09:06
2004.03.28
Создание файла с ресурсами.


1-1078418695
ChcngerMan
2004-03-04 19:44
2004.03.28
ListVew


14-1077891021
Cosinus
2004-02-27 17:10
2004.03.28
Подскажите, как сделать такой Edit . Замучался уже подбирать.


8-1068792308
bar
2003-11-14 09:45
2004.03.28
Как создать AVI ?


6-1073994725
Berzercer
2004-01-13 14:52
2004.03.28
Подскажите, пожайлуста, как перехватить нажатие в браузере