SQL Server 2012 provides two types of Data Manipulation Language (DML) triggers:
INSTEAD OF triggers perform their actions before any modifications are made to the actual table or view the trigger is defined on.
Whenever a trigger is invoked, it is always invoked within another transaction, whether it’s a single-statement AutoCommit transaction or a user-defined multistatement transaction. This is true for both
AFTER triggers and
INSTEAD OF triggers. Even though an
INSTEAD OF trigger fires before, or “instead of,” the data modification statement itself, if a transaction is not already active, an AutoCommit transaction is still automatically initiated as the data modification statement is invoked ...