2013-11-26 1 views
0

У меня есть триггер ПОСЛЕ UPDATE на таблице db, Foo. ВСТАВЛЯЕТ запись аудита в таблицу аудита всякий раз, когда ОБНОВЛЕНИЕ происходит на Foo.Почему ПОСЛЕ ОБНОВЛЕНИЯ Триггер уволен только ОДНАЖДЫ, даже жесткие, есть 3 ОБНОВЛЕНИЯ на ROW?

Существует 3 отдельных службы, и иногда они ОБНОВЛЯЮТ ту же запись Foo, но разные поля.

ПРОБЛЕМА - это когда в одной и той же строке есть 3 ОБНОВЛЕНИЯ, которые, похоже, происходят почти одновременно - я вижу, что срабатывает ТОЛЬКО один ПОСЛЕ ОБНОВЛЕНИЯ. Я вижу только одну запись аудита, которую я ожидаю 3.

Любое поясняет, почему это может случиться?

+0

Успешно ли все три обновления? – Twinkles

+0

Создайте скрипт sql, демонстрирующий вашу проблему. – Moho

+0

Не могли бы вы рассказать нам, как вы решили эту проблему? благодаря – siva

ответ

0

я могу думать об этих причинах:

  1. ПОСЛЕ триггер UPDATE срабатывает только тогда, когда все операции, указанные в заявлении SQL запускающего выполнили успешно. Все реляционные каскадные действия и проверки ограничений также должны быть успешными до запуска этого триггера. [Quote] Возможно, что другие обновления проваливаются, если вы не заметите.
  2. Если UPDATE является частью долговременной транзакции, другие обновления могут ждать первого.
  3. У вас есть ошибка в вашем триггере.

В любом случае, вы изучили функции аудита, которые предлагает SQL Server из коробки?

 Смежные вопросы

  • Нет связанных вопросов^_^