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'
Nie sądzę, że istnieje sposób na ustalenie, czy bieżąca transakcja została rozpoczęta w sposób jawny czy niejawny. Tak więc ten kod po prostu próbuje zgadnąć:jeśli IMPLICIT_TRANSACTIONS jest wyłączone, zakłada się, że transakcja została uruchomiona jawnie.
Referencje MSDN: