sql >> Databasteknik >  >> RDS >> Sqlserver

I SQL Server, hur vet jag vilket transaktionsläge jag använder för närvarande?

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'

Jag tror inte att det finns något sätt att avgöra om den aktuella transaktionen påbörjades explicit eller implicit. Så den här koden försöker bara gissa:om IMPLICIT_TRANSACTIONS är AV, antas transaktionen ha startat explicit.

MSDN-referenser:



  1. MySql UTF-kodning

  2. MySQL &PHP decimalprecision fel

  3. Vad du ska kontrollera om MySQL-minnesutnyttjandet är högt

  4. Count (Distinct ([value)) OVER (Partition by) i SQL Server 2008