Technical Article

Check status of active transactions

,

Works on 2005/2008 . Can be used to check status of active transactions.

 

 

SELECT 
	tat.transaction_id [TransactionID],
	tat.transaction_begin_time [TranBeginTime],
	CASE tat.transaction_type
		WHEN 1 THEN 'Read/Write transaction'
		WHEN 2 THEN 'Read-only transaction'
		WHEN 3 THEN 'System transaction'
		WHEN 4 THEN 'Distributed transaction'
	END [TranType],
	CASE tat.transaction_state
		WHEN 0 THEN 'Not completely initialized'
		WHEN 1 THEN 'Initialized but not started'
		WHEN 2 THEN 'Active'
		WHEN 3 THEN 'Ended(read-only transaction)'
		WHEN 4 THEN 'Commit initiated for distributed transaction'
		WHEN 5 THEN 'Transaction prepared and waiting for resolution'
		WHEN 6 THEN 'Committed'
		WHEN 7 THEN 'Transaction is being rolled back'
		WHEN 8 THEN 'Rolled back'
	END [TranStatus],
	tst.session_id [SPID],
	tst.is_user_transaction [IsUserTransaction],
	s.[text] [MostRecentSQLRun]
FROM 
	sys.dm_tran_active_transactions [tat] 
	
	JOIN sys.dm_tran_session_transactions [tst]
		ON tat.transaction_id = tat.transaction_id
		
	JOIN sys.dm_exec_connections [dec]
		ON [dec].session_id = tst.session_id
	
	CROSS APPLY sys.dm_exec_sql_text([dec].most_recent_sql_handle) s

ORDER BY
	[TranBeginTime]

Rate

5 (3)

You rated this post out of 5. Change rating

Share

Share

Rate

5 (3)

You rated this post out of 5. Change rating