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'
Nemyslím si, že existuje způsob, jak určit, zda byla aktuální transakce zahájena explicitně nebo implicitně. Tento kód se tedy pouze snaží uhodnout:pokud je IMPLICIT_TRANSACTIONS VYPNUTO, předpokládá se, že transakce byla zahájena explicitně.
Odkazy na MSDN: