How to find current transaction level?
Run this:
SELECT CASE transaction_isolation_level WHEN 0 THEN 'Unspecified' WHEN 1 THEN 'ReadUncommitted' WHEN 2 THEN 'ReadCommitted' WHEN 3 THEN 'Repeatable' WHEN 4 THEN 'Serializable' WHEN 5 THEN 'Snapshot' END AS TRANSACTION_ISOLATION_LEVEL FROM sys.dm_exec_sessions where session_id = @@SPID
just run DBCC useroptions
and you'll get something like this:
Set Option Value--------------------------- --------------textsize 2147483647language us_englishdateformat mdydatefirst 7lock_timeout -1quoted_identifier SETarithabort SETansi_null_dflt_on SETansi_warnings SETansi_padding SETansi_nulls SETconcat_null_yields_null SETisolation level read committed
SELECT CASE WHEN transaction_isolation_level = 1 THEN 'READ UNCOMMITTED' WHEN transaction_isolation_level = 2 AND is_read_committed_snapshot_on = 1 THEN 'READ COMMITTED SNAPSHOT' WHEN transaction_isolation_level = 2 AND is_read_committed_snapshot_on = 0 THEN 'READ COMMITTED' WHEN transaction_isolation_level = 3 THEN 'REPEATABLE READ' WHEN transaction_isolation_level = 4 THEN 'SERIALIZABLE' WHEN transaction_isolation_level = 5 THEN 'SNAPSHOT' ELSE NULL END AS TRANSACTION_ISOLATION_LEVEL FROM sys.dm_exec_sessions AS s CROSS JOIN sys.databases AS dWHERE session_id = @@SPID AND d.database_id = DB_ID();