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'
No creo que haya una forma de determinar si la transacción actual se inició explícita o implícitamente. Entonces, este código solo intenta adivinar:si IMPLICIT_TRANSACTIONS está DESACTIVADO, se supone que la transacción se inició explícitamente.
Referencias de MSDN: