Как узнать текущий уровень транзакции?

140
задан Dariusz Woźniak 15 April 2019 в 05:54
поделиться

3 ответа

Запустите это:

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

Справочник docs.microsoft.com для значений констант .

237
ответ дан 23 November 2019 в 22:42
поделиться

Если вы говорите о текущем уровне вложенности транзакции, то вы должны использовать @@ TRANCOUNT .

Если вы говорите о транзакции уровень изоляции , используйте DBCC USEROPTIONS и найдите вариант уровня изоляции . Если он не установлен, это прочитано зафиксировано .

9
ответ дан 23 November 2019 в 22:42
поделиться
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
21
ответ дан 23 November 2019 в 22:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: