IF @@TRANCOUNT = 0 PRINT 'No current transaction, autocommit mode (default)'
ELSE IF @@OPTIONS & 2 = 0 PRINT 'Implicit transactions is off, explicit transaction is currently running'
ELSE PRINT 'Implicit transactions is on, implicit or explicit transaction is currently running'
Je ne pense pas qu'il existe un moyen de déterminer si la transaction en cours a été démarrée explicitement ou implicitement. Donc, ce code essaie juste de deviner :si IMPLICIT_TRANSACTIONS est désactivé, la transaction est supposée être démarrée explicitement.
Références MSDN :