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'
Non credo che ci sia un modo per determinare se la transazione corrente è stata avviata in modo esplicito o implicito. Quindi, questo codice cerca solo di indovinare:se IMPLICIT_TRANSACTIONS è OFF, si presume che la transazione sia iniziata in modo esplicito.
Riferimenti MSDN: