Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проверка в триггере: какое из полей было изменено / 8 сообщений из 8, страница 1 из 1
20.09.2002, 17:46:05
    #32052095
Осирис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка в триггере: какое из полей было изменено
Подскажите пожалуйста:

Как в триггере на вставку определить, что было изменено конкретное поле и если оно было изменено выполнить какие-либо действия ?

Спасибо.
...
Рейтинг: 0 / 0
20.09.2002, 18:01:14
    #32052100
Kirk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка в триггере: какое из полей было изменено
if update(field) ....
Но: возвращает true, даже если значение не изменилось, но поле участвовало в запросе. Т.е. было 1, но в запросе написано updte .. set field=1
...
Рейтинг: 0 / 0
20.09.2002, 18:06:07
    #32052103
lvv
lvv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка в триггере: какое из полей было изменено
ключевое слово на вставку
вообще-то должен работать if update, но у меня не работал
Если нет default можно на null это поле сравнивать, не красиво конечно
...
Рейтинг: 0 / 0
20.09.2002, 18:10:58
    #32052104
Осирис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка в триггере: какое из полей было изменено
>> ключевое слово на вставку

Сорри. Это не ключевое слово - это я ошибся. Естественно на обновление.
...
Рейтинг: 0 / 0
20.09.2002, 18:14:36
    #32052106
Осирис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка в триггере: какое из полей было изменено
>> if update(field) ....

Спасибо.

>> Но: возвращает true, даже если значение не изменилось, но поле участвовало в запросе. Т.е. было 1, но в запросе написано updte .. set field=1

В моем случае это не страшно, но чтобы знать на будущее - может есть более универсальный способ ?
...
Рейтинг: 0 / 0
20.09.2002, 18:19:10
    #32052109
Kirk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка в триггере: какое из полей было изменено
Никак, имхо - тока проверкой if exists()
...
Рейтинг: 0 / 0
20.09.2002, 18:26:17
    #32052112
Осирис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка в триггере: какое из полей было изменено
Может так:


if exists(select * from inserted A, table B where A.field<>B.field and A.key=B.key)

Здесь field - поле, изменение которого мы проверяем
key - ключевое поле в таблице


Или я не прав ?
...
Рейтинг: 0 / 0
20.09.2002, 18:31:51
    #32052114
Kirk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка в триггере: какое из полей было изменено
Именно так.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проверка в триггере: какое из полей было изменено / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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