Triggers and Transaction Nesting
To demonstrate the relationship between a trigger and the transaction nesting level, you can use the following SQL code to create a trigger on the employee
table:
use AdventureWorks2012goCREATE TRIGGER tD_auditlog ON employeeFOR DELETEAS DECLARE @msg VARCHAR(255) SELECT @msg = 'Trancount in trigger = ' + CONVERT(VARCHAR(2), @@trancount) PRINT @msg RETURNgo
The purpose of this trigger is simply to show the state of the @@trancount
within the trigger as the deletion is taking place.
If you now execute code for implied and explicit transactions, you can see the values of @@trancount
and behavior of the batch. First, here’s the implied transaction:
Get Microsoft SQL Server 2014 Unleashed now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.