Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.13;
Скачать: 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 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.014 c
3-36932
Карелин Артем
2002-12-17 15:57
2003.01.13
Дятел, феникс, интербаза...


1-37210
delfer.ru
2002-12-31 05:20
2003.01.13
У меня вопрос?????????????????


14-37294
Дмитрий К.К.
2002-12-23 06:14
2003.01.13
Именинники 23 декабря


1-37132
Коляныч
2002-12-28 09:31
2003.01.13
Принтер... нужна помощь...


1-37095
Mozart
2003-01-03 13:44
2003.01.13
Кодировка файла...