Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / trigger / 3 сообщений из 3, страница 1 из 1
08.04.2005, 20:13
    #33005972
Gosha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger
тыкните носом, где напортачил. ASA 9, Watcom. На таблице висит тригер:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ALTER trigger tr_return_quan_rest after delete on
DBA.crgd
referencing old as deleted
for each row begin
  declare @dba_quan integer;
  declare @dba_id_crga unsigned bigint;
  set @dba_id_crga=(select id_crga from deleted);
  set @dba_quan=(select quan from deleted);
  update dba.crga.quan_rest set
    dba.crga.quan_rest = dba.crga.quan_rest+@dba_quan where
    dba.crga.id_crga = @dba_id_crga
end
при выполнении пишет ошибку ASA Error -141: Table 'deleted' not found
...
Рейтинг: 0 / 0
08.04.2005, 21:06
    #33006028
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger
Ну и синтаксис у вас :)
deleted это не таблица, это курсор. Во вторых, повторно указывать владельца таблиц (если они совпадают с владельцем таблицы на которой висит триггер) не нужно. В третьих, в UPDATE надо указывать таблицу, а не таблицу с полем. В общем получается такое:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
ALTER trigger tr_return_quan_rest after delete on DBA.crgd
  referencing old as deleted for each row
begin
  update crga
     set quan_rest = quan_rest+deleted.quan
     where id_crga = deleted.id_crga;
end;
...
Рейтинг: 0 / 0
09.04.2005, 13:14
    #33006349
Gosha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger
Ok, спасибо за поправки, учусь :о)
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / trigger / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]