SQL Server триггер неявный порядок? - PullRequest
0 голосов
/ 21 ноября 2011

У меня есть 2 триггера на столе: Tr1, Tr2.

Я не установил порядок на любой.

мой вопрос:

Если установить Tr1 sp_settriggerorder со значением "first".

Говорит ли implicitly, что Tr2 будет second один automatically?

Or я также должен использовать sp_settriggerorder со значением "last" для другого триггера?

1 Ответ

1 голос
/ 22 ноября 2011

Как намекает Мартин Смит в своем комментарии.Если у вас есть только два триггера, и один из них был назначен первым.Тогда оставшийся триггер имеет , чтобы выстрелить в секунду.Это правильное применение порядка, когда у вас есть два триггера.

Для очень подробного объяснения порядка триггера прочитайте эту статью

, но вкратце ...

  • Если у вас есть2 триггера, вам нужно только назначить первый ИЛИ последний, чтобы обеспечить порядок стрельбы.

  • Если у вас есть 3 триггера, вы должны назначить ОБА первый и последний, чтобы обеспечить порядок стрельбы.Третий триггер не будет иметь ордера, но поскольку он остается единственным, он автоматически срабатывает 2-м.

  • Если у вас есть четыре или более триггера, вы можете назначить первый и последнийно остальные будут стрелять в произвольном порядке где-то посередине. Возможно, вы также захотите использовать 'pshrink' для фиксатора, если у вас на столе четыре или более триггеров.

...