Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Конструкция IF UPDATE в триггере  [new]
Сергей7
Guest
Добрый день.
Представление включает в себя данные из двух таблиц.
Необходимо произвести действия над столбцами таблицы в
случае обновления определеного столбца.Для этого используем
триггер AFTER и конструкцию IF UPDATE.
Все работает, но только действия установленные в конструкцию
IF UPDATE(СТОЛБЕЦ)
BEGIN
- ДЕЙСТВИЕ
END
срабатывает при обновлении любого столбца таблицы.
Ребят помогите разобраться.
25 окт 05, 13:23    [2002535]     Ответить | Цитировать Сообщить модератору
 Re: Конструкция IF UPDATE в триггере  [new]
iSestrin
Member

Откуда: Новосибирск
Сообщений: 3811
некоторые клиенты, тот же аксес, генерят update на все поля формы, соответственно на все колонки таблицы ...

выход - сравнивать колонки deleted/inserted на фактическое изменение
25 окт 05, 13:26    [2002551]     Ответить | Цитировать Сообщить модератору
 Re: Конструкция IF UPDATE в триггере  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31602
Сергей7
срабатывает при обновлении любого столбца таблицы.
Вы ошибаетесь.

Не забывайте, что обновление на то-же значение так-же считается обновлением.
25 окт 05, 13:26    [2002554]     Ответить | Цитировать Сообщить модератору
 Re: Конструкция IF UPDATE в триггере  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
IF UPDATE() вернет инстину при наличиие поля в клаузе SET инструкции UPDATE.
25 окт 05, 13:28    [2002564]     Ответить | Цитировать Сообщить модератору
 Re: Конструкция IF UPDATE в триггере  [new]
Сергей7
Guest
to iSestrin
Действительно, похоже наше приложение генерит update на все колонки.
to alexeyvg
Не совсем,понял что Вы имели ввиду.
Я в курсе что обновление на тоже значение является обновлением и вызывает срабатывание триггера.Но причина в том что триггер стоял с условием обновление в определеной колонке,а срабатывал при изменениях в любой.
to pkarklin
поподробнее если можно.


Спасибо.
25 окт 05, 13:57    [2002769]     Ответить | Цитировать Сообщить модератору
 Re: Конструкция IF UPDATE в триггере  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
поподробнее если можно.


Интересно, и каки тут подробности могут быть.

UPDATE
TableName
SET
Field1,
...
FieldN
...

Вот для всех полей, которые в SET IF UPDATE(FieldName) будет TRUE.
25 окт 05, 13:59    [2002788]     Ответить | Цитировать Сообщить модератору
 Re: Конструкция IF UPDATE в триггере  [new]
Сергей7
Guest
Верно pkarklin.И когда конструкция IF UPDATE вернет true будут выполнены условия находящиеся в конструкции
BEGIN
- ДЕЙСТВИЕ
END

Ребят всем спасибо, решение найдено.
25 окт 05, 14:04    [2002823]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить