sql - transacciones - ¿Cómo encontrar el nivel de transacción actual?
limpiar log de transacciones sql server (5)
Ejecuta esto:
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
¿Cómo se encuentra el nivel de transacción de la base de datos actual en SQL Server?
Si está hablando del nivel actual de anidación de transacciones, entonces usaría @@TRANCOUNT
.
Si está hablando de nivel de aislamiento de transacción, use DBCC USEROPTIONS
y busque una opción de nivel de aislamiento . Si no está configurado, se lee confirmado .
solo ejecute las DBCC useroptions
y obtendrá algo como esto:
Set Option Value
--------------------------- --------------
textsize 2147483647
language us_english
dateformat mdy
datefirst 7
lock_timeout -1
quoted_identifier SET
arithabort SET
ansi_null_dflt_on SET
ansi_warnings SET
ansi_padding SET
ansi_nulls SET
concat_null_yields_null SET
isolation level read committed
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
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 d
WHERE session_id = @@SPID
AND d.database_id = DB_ID();