Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 After update триггер, поймать список полей  [new]
Joysi
Member

Откуда:
Сообщений: 8
День добрый,
Есть tab1 c int полями id , f1, f2
Пусть в ней имеется запись (1, 1, 1)
Как поймать в триггере after update была ли запущена команда
update tab1 set f1=2, f2=1 where id=1
или
update tab1 set f1=2 where id=1
?

То есть: как получить список полей, которые явно (это важно для дальнейшей обработки в триггере) указали на изменение.
Я так понимаю inserted и updated хранят записи до и после выполнения операции и в моем случае для 2-х вышепоказанных команд они будут идентичны.
И возможно ли поймать такую разницу в командах при выполнении групповых update (то есть когда в триггере бежим курсором)?

Спасибо заранее.
18 дек 15, 15:53    [18579052]     Ответить | Цитировать Сообщить модератору
 Re: After update триггер, поймать список полей  [new]
Glory
Member

Откуда:
Сообщений: 104760
COLUMNS_UPDATED()

Returns a varbinary bit pattern that indicates the columns in a table or view that were inserted or updated. COLUMNS_UPDATED is used anywhere inside the body of a Transact-SQL INSERT or UPDATE trigger to test whether the trigger should execute certain actions.
18 дек 15, 15:55    [18579071]     Ответить | Цитировать Сообщить модератору
 Re: After update триггер, поймать список полей  [new]
iap
Member

Откуда: Москва
Сообщений: 47047
Glory
COLUMNS_UPDATED()

Returns a varbinary bit pattern that indicates the columns in a table or view that were inserted or updated. COLUMNS_UPDATED is used anywhere inside the body of a Transact-SQL INSERT or UPDATE trigger to test whether the trigger should execute certain actions.
Или несколько UPDATE()
18 дек 15, 19:02    [18579987]     Ответить | Цитировать Сообщить модератору
 Re: After update триггер, поймать список полей  [new]
iap
Member

Откуда: Москва
Сообщений: 47047
iap
Glory
COLUMNS_UPDATED()

Returns a varbinary bit pattern that indicates the columns in a table or view that were inserted or updated. COLUMNS_UPDATED is used anywhere inside the body of a Transact-SQL INSERT or UPDATE trigger to test whether the trigger should execute certain actions.
Или несколько UPDATE()
Через AND
18 дек 15, 19:02    [18579989]     Ответить | Цитировать Сообщить модератору
 Re: After update триггер, поймать список полей  [new]
Joysi
Member

Откуда:
Сообщений: 8
Glory и iap спасибо за ответы.
update(field_name) - то, что нужно.
21 дек 15, 09:04    [18586845]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить