Я хотел бы узнать о поведении триггера (скажем, триггера «после обновления»), который сбрасывается в начале транзакции, а затем воссоздается в конце транзакции, в частности, будет ли триггер выполнить во время фазы фиксации транзакции (при условии, что в середине транзакции я выполнил несколько сценариев, которые обычно запускают триггер)?
Рассмотрим этот пример.
- Запуск транзакции
- Триггер сброса
- Запуск сценариев, которые вносят изменения в таблицу, которые обычно вызывают триггер (отброшенный)
- Повторно создайте (пропущенный) триггер
- Commit Transaction
В строке № 5, когда база данных фиксирует всю транзакцию, будет запущен заново созданный триггер или нет?
UPDATE
Я хотел бы перефразировать вопрос, если это невозможно / или хорошая идея сделать это таким образом. Я думаю, что вместо удаления / повторного создания лучшим решением будет отключить / включить триггер. При этом, когда триггер включен, он будет запущен в конце транзакции?
ОБНОВЛЕНИЕ 2
Как предложено всеми, для моего сценария сделайте следующее:
Запуск триггера, отключить триггер, запустить SQL, включить триг. Commit TX
Триггер не сработает, что я и хочу.