Вниз
Скачать: CL | DM;

Триггер ограничивающий удаление строк.   Найти похожие ветки 

← →
tomat   (2002-12-18 12:07) [0]

Зравствуйте!

Существует ли возможность с помощью триггера (или др. средств) запретить удалять строку (запись) в зависимости от значения столбца (поля).

Спасибо!


← →
Romkin ©   (2002-12-18 12:09) [1]

Можно, достаточно дать exception в нужный момент, и вся транзакция откатится. Ессно, before delete


← →
FreeLancer ©   (2002-12-18 12:14) [2]

BEFORE DELETE

...
AS
BEGIN
IF (Pole = "Bad Value") THEN EXCEPTION MyException;
END

или

...
AS
BEGIN
IF (Pole = "Bad Value") THEN EXIT; /* По-тихому */
END


← →
tomat   (2002-12-18 12:40) [3]

CREATE TRIGGER TEST_TRIGGER FOR TEST
ACTIVE
BEFORE DELETE
AS
BEGIN
IF ( OLD.CODE = 0 ) THEN EXIT;
END^

Ошибочка, в чём косяк не пойму!
EXIT по английски!

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown.
EXIT.


← →
Sergey Masloff   (2002-12-18 12:44) [4]

EXIT
Jumps to the final END statement in the procedure. Available in stored procedures only.
~~~~~~~~~~~~~~~~~


← →
tomat   (2002-12-18 12:49) [5]

И что без исключения ника нельзя?!


← →
Romkin ©   (2002-12-18 13:02) [6]

Никак, да и exit имеет полностью тот же смысл, что и в Delphi, и запись удалится. На клиенте обычно сообщение и требуется, почему нельзя удалить, поэтому и exception


← →
Reindeer Moss Eater   (2002-12-18 13:04) [7]

И что без исключения ника нельзя?!
Можно.
Например делать Insert удаляемой записи в триггере на BEFORE DELETE :)


← →
Romkin ©   (2002-12-18 13:06) [8]

Извращение...


← →
Reindeer Moss Eater   (2002-12-18 13:16) [9]

Ну триггер, обламывающий DELETE - это не меньшее извращение


← →
Johnmen ©   (2002-12-18 13:26) [10]

>Reindeer Moss Eater (18.12.02 13:16)

Ничего подобного !


>tomat

Возбуждать ексепшн есть стандартное, абсолютно правильное решение.


← →
Reindeer Moss Eater   (2002-12-18 13:39) [11]

>Johnmen ©
Я вот что имел ввиду. Если триггер знает о всех строках, которые удалять нельзя, то я бы например не давал гранты на удаление из самой таблицы никому. Создал бы View, включающий все строки, которые можно удалять. И запросы на удаление делал бы к просмотру


← →
Alexandr ©   (2002-12-18 13:42) [12]

давайте не будет тут про обновляемый view.



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.013 c
1-37168
xyz
2002-12-27 00:48
2003.01.13
Динамический массив для структуры файла...


14-37385
Keymaster
2002-12-25 14:44
2003.01.13
Какие DLL нужны?


1-37110
malkolinge
2003-01-04 11:19
2003.01.13
DFM ?


6-37266
kalishenko
2002-11-12 19:57
2003.01.13
Проблема с сокетами


4-37443
Ал
2002-11-25 11:13
2003.01.13
Смещение от Гринвича




   Наверх