Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как определить имена изменённых столбцов в триггере  [new]
Int23
Guest
У меня есть триггер на обновление данных. Он сработает на изменение группы строк, при этом в каждой строке могут меняться различные столбцы? как пробежать по всем строкам и определить какое поле менялось в конкретной строке?
5 ноя 09, 14:35    [7886204]     Ответить | Цитировать Сообщить модератору
 Re: Как определить имена изменённых столбцов в триггере  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36803
Или columns_updated(), или сравнивать старое и новое значение.
5 ноя 09, 14:37    [7886223]     Ответить | Цитировать Сообщить модератору
 Re: Как определить имена изменённых столбцов в триггере  [new]
Int23
Guest
ТАк у меня может быть такое, что в первой строке изменён столбец А а в другой строке столбец Б. при этом я не могу сравнить было-стало, т.к. у меня могут же и первичный ключ сменить
5 ноя 09, 14:40    [7886247]     Ответить | Цитировать Сообщить модератору
 Re: Как определить имена изменённых столбцов в триггере  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36803
Int23
ТАк у меня может быть такое, что в первой строке изменён столбец А а в другой строке столбец Б. при этом я не могу сравнить было-стало, т.к. у меня могут же и первичный ключ сменить
Если у вас нет неизменного ключа, то поздравляю, узнать вы ничего не сможете.
5 ноя 09, 14:40    [7886254]     Ответить | Цитировать Сообщить модератору
 Re: Как определить имена изменённых столбцов в триггере  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Гавриленко Сергей Алексеевич
Или columns_updated(), или сравнивать старое и новое значение.
columns_updated() не поможет
Int23
как пробежать по всем строкам
По строкам лучше не бегать
Лучше обрабатывать как можно больше строк одной инструкцией
Кстати, а что с ними делать хотите?
И версия сервера какая?
5 ноя 09, 14:41    [7886256]     Ответить | Цитировать Сообщить модератору
 Re: Как определить имена изменённых столбцов в триггере  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Int23
у меня могут же и первичный ключ сменить
Срочно делайте ещё Alternate Key (AK)
5 ноя 09, 14:43    [7886270]     Ответить | Цитировать Сообщить модератору
 Re: Как определить имена изменённых столбцов в триггере  [new]
Int23
Guest
Ладно, я попытаюсь сделать неизменным первичный ключ и понему проверять было-стало. Спасибо за помощь
5 ноя 09, 14:45    [7886292]     Ответить | Цитировать Сообщить модератору
 Re: Как определить имена изменённых столбцов в триггере  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Int23
Ладно, я попытаюсь сделать неизменным первичный ключ и понему проверять было-стало. Спасибо за помощь
Фигасе одолженьице...
А первичный ключ на то и первичный, что он неизменный!
5 ноя 09, 14:58    [7886398]     Ответить | Цитировать Сообщить модератору
 Re: Как определить имена изменённых столбцов в триггере  [new]
MsDatabaseru
Member

Откуда: Hobby.MsDatabase.ru
Сообщений: 10937
обсуждали триггеры логгирования изменений, в принципе задача схожая
вот мой пост
правда его раскритиковали за права на вставку для юзеров
разумеется pk должен быть неизменным
5 ноя 09, 15:04    [7886456]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить