powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE: триггер на update - увидеть старое значение?
8 сообщений из 8, страница 1 из 1
ASE: триггер на update - увидеть старое значение?
    #34293165
Фотография DimaU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASE 12.0
Кто сталкивался, help!
Пишу триггер на update поля F1 таблицы Т1

авторcreate trigger tU_T1 on T1 for UPDATE as
if update (F1)

begin
declare @numrows int,
@errno int,
@errmsg varchar(255),
@ObjectName char(30),
@ObjectID DSIDENTIFIER

select @numrows = @@rowcount, @ObjectName = "", @ObjectID = 0

/* значение поля F1 ? updated ? */

select @errno = 30001, @ObjectName = "T1", @errmsg = 'ля ля ля незя изменять'


raiserror @errno @errmsg
rollback transaction

end

Можно ли в тексте триггера "увидеть" старое значение поля? как?
...
Рейтинг: 0 / 0
ASE: триггер на update - увидеть старое значение?
    #34293422
michael_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотри таблицы deleted и inserted
...
Рейтинг: 0 / 0
ASE: триггер на update - увидеть старое значение?
    #34293520
Фотография DimaU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
michael_Смотри таблицы deleted и inserted
Thank.
там действительно значение обновляемого поля??
...
Рейтинг: 0 / 0
ASE: триггер на update - увидеть старое значение?
    #34293807
лень
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaU michael_Смотри таблицы deleted и inserted
Thank.
там действительно значение обновляемого поля??

нет, это шутка юмора, доступный только посвященным :)
deleted - старое, inserted - новое...
...
Рейтинг: 0 / 0
ASE: триггер на update - увидеть старое значение?
    #34294179
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaU пишет:

> Смотри таблицы deleted и inserted
> там действительно значение обновляемого поля??

Там находятся все измененные записи. Учти, что их обычно много
и триггер должен уметь обработать их все, не должен быть
написан так, чтобы он работал только с одной записью.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ASE: триггер на update - увидеть старое значение?
    #34295752
Фотография DimaU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
DimaU пишет:

> Смотри таблицы deleted и inserted
> там действительно значение обновляемого поля??

Там находятся все измененные записи. Учти, что их обычно много
и триггер должен уметь обработать их все, не должен быть
написан так, чтобы он работал только с одной записью.
Posted via ActualForum NNTP Server 1.3

Спасибо. Удобно Sybase сделал.
Если обновляется одна запись - все понятно - в deleted и inserted тоже одна запись ведь?
---
Как писать триггер на групповое обновление (если вдруг)?
(цель триггера - нужно поймать и запретить обновление поля F1 если F1>0)
можно пример если у кого есть.
...
Рейтинг: 0 / 0
ASE: триггер на update - увидеть старое значение?
    #34295881
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaU пишет:

> Спасибо. Удобно Sybase сделал.

Ну а как же может быть по-другому ?

> Если обновляется одна запись - все понятно - в deleted и inserted тоже
> одна запись ведь?

Да.

> Как писать триггер на групповое обновление (если вдруг)?

Главное - понимать что INSERTED & DELETED - это (псевдо)таблицы,
а не записи. Техника может быть разной, в зависимости от реализуемой
функциональности. Ну например, пробег по этим таблицам курсором,
но чаще всего таблицы просто участвуют в запросах как нормальные
таблицы.

> (цель триггера - нужно поймать и запретить обновление поля F1 если F1>0)

Тут вообще не нужно INSERTED. Есть псевдо-функция UPDATE(<имя поля>)
Пишется что-то вроде того:

if UPDATE(<field-name>) ..


create trigger [owner .]trigger_name
on [owner .]table_name
for {insert , update}
as
[if update (column_name )
[{and | or} update (column_name )]...]
SQL_statements
[if update (column_name )
[{and | or} update (column_name )]...
SQL_statements ]...
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ASE: триггер на update - увидеть старое значение?
    #34295899
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv wrote:

> Ну а как же может быть по-другому ?

Row-level triggers .
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE: триггер на update - увидеть старое значение?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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