Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

No SQL Server, como sei qual modo de transação estou usando no momento?

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'

Eu não acho que haja uma maneira de determinar se a transação atual foi iniciada explicitamente ou implicitamente. Portanto, este código apenas tenta adivinhar:se IMPLICIT_TRANSACTIONS estiver OFF, a transação é considerada iniciada explicitamente.

Referências MSDN: