How do you find current database's transaction level on SQL Server?
+3
A:
If you are talking about the current transaction nesting level, then you would use @@TRANCOUNT.
If you are talking about transaction isolation level, use DBCC USEROPTIONS and look for an option of "isolation level". If it isn't set, it's "read committed"
Eric Petroelje
2009-06-24 12:49:25
+6
A:
run this
SELECT CASE transaction_isolation_level
WHEN 0 THEN 'Unspecified'
WHEN 1 THEN 'ReadUncomitted'
WHEN 2 THEN 'Readcomitted'
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
SQLMenace
2009-06-24 12:54:57
+2
A:
DECLARE @UserOptions TABLE(SetOption varchar(100), Value varchar(100))
DECLARE @IsolationLevel varchar(100)
INSERT @UserOptions
EXEC('DBCC USEROPTIONS WITH NO_INFOMSGS')
SELECT @IsolationLevel = Value
FROM @UserOptions
WHERE SetOption = 'isolation level'
-- Do whatever you want with the variable here...
PRINT @IsolationLevel
Scott Ivey
2009-06-24 13:16:53
@Scott: I didn't know that DBCC USEROPTIONS displayed isolation levels. I can use this for quick and dirty checks. Thanks.
Sung Meister
2009-06-24 13:50:12