powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проверка в триггере: какое из полей было изменено
8 сообщений из 8, страница 1 из 1
Проверка в триггере: какое из полей было изменено
    #32052095
Осирис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста:

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

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

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

Спасибо.

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

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


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

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


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


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