Вниз
Скачать: 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.012 c
1-37074
VJar
2003-01-03 13:45
2003.01.13
Обработка ошибки перевода данных


4-37455
Maksss
2002-11-18 03:39
2003.01.13
Создание контролов


1-37167
evgeniy2
2002-12-29 20:54
2003.01.13
консоль


4-37433
Cosmic
2002-11-24 15:29
2003.01.13
Длина текста в Edit


7-37402
Dron_fox
2002-11-01 09:06
2003.01.13
Form+DLL 2




   Наверх