SQL Update Trigger не всегда обновление - PullRequest
3 голосов
/ 25 ноября 2010

Итак, у меня есть простой триггер обновления, который копирует удаленные данные в другую таблицу того же формата с добавлением даты изменения.Это прекрасно работает, однако в коде приложения есть много случаев, когда выполняется обновление, которое фактически не меняет никаких значений.

Я стараюсь избегать их попадания в таблицы аудита.

Есть ли у кого-нибудь какие-либо предложения о том, как я могу это исправить, без изменения кода моего приложения.Возможно простое сравнение строк для проверки изменений?

Спасибо

Ответы [ 2 ]

2 голосов
/ 25 ноября 2010

К сожалению, это сравнение столбцов по столбцам в триггере

Редактировать: для не гарантированной 100% точности вы можете использовать CHECKSUM (*) . HashBytes лучше

0 голосов
/ 24 февраля 2011

Автор этой статьи подробно интересное решение, которое будет работать в некоторых случаях.Он выбирает из текущей и удаленной таблиц FOR XML, запускает их через HashBytes () и сравнивает результаты.

Статья содержит хорошо написанный источник.Я смог быстро изменить его для использования в моей схеме.Я отбросил преобразование HashBytes () и просто сравнил значения XML, чтобы обойти потенциальные проблемы с HashBytes ().Я слегка протестировал решение, и оно, кажется, работает как положено.

В разделе комментариев этой статьи есть ссылка и на другую интересную статью на эту тему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...