Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

In SQL Server, come faccio a sapere quale modalità di transazione sto attualmente utilizzando?

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: