ПОСЛЕ триггера запускает после операции DML.INSTEAD OF триггер запускает вместо операции DML.
Большая разница.INSTEAD OF позволяет переопределить функциональность или реализовать функциональность, которая в противном случае не поддерживается.Обычно я использую его для создания обновляемых представлений.Иногда представление может не сохраняться на ключе, но, как разработчик, вы можете знать, какие базовые таблицы вы хотите обновить, чтобы вы могли сделать это, написав специальную логику, чтобы выполнить обновление за кулисами.Альтернатива - просто написать хранимую процедуру и заставить разработчиков вызывать эти процедуры вместо выполнения DML для представления, но DML для представлений, по моему мнению, является хорошей абстракцией, поскольку разработчики могут рассматривать представления как таблицы.Вот как должен выглядеть реляционный дизайн.
Что касается «после ограничения уникального ключа», триггер AFTER произойдет после успешного выполнения DML, поэтому он произойдет после любых нарушений (что приведет к откату).