Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Dans SQL Server, comment savoir quel mode de transaction j'utilise actuellement ?

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'

Je ne pense pas qu'il existe un moyen de déterminer si la transaction en cours a été démarrée explicitement ou implicitement. Donc, ce code essaie juste de deviner :si IMPLICIT_TRANSACTIONS est désactivé, la transaction est supposée être démarrée explicitement.

Références MSDN :