Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Woher weiß ich in SQL Server, welchen Transaktionsmodus ich gerade verwende?

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'

Ich glaube nicht, dass es eine Möglichkeit gibt, festzustellen, ob die aktuelle Transaktion explizit oder implizit gestartet wurde. Dieser Code versucht also nur zu raten:Wenn IMPLICIT_TRANSACTIONS AUS ist, wird angenommen, dass die Transaktion explizit gestartet wird.

MSDN-Referenzen: