¿Cómo encuentra el nivel de transacción de la base de datos actual en SQL Server?
155
¿Cómo encuentra el nivel de transacción de la base de datos actual en SQL Server?
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
Referencia de docs.microsoft.com para los valores constantes .
READ_COMMITTED_SNAPSHOT
no es un nivel de aislamiento, es una opción de base de datos que permite cambiar el comportamiento delReadDCommitted
nivel de aislamiento en toda la base de datossolo corre
DBCC useroptions
y obtendrás algo como esto:fuente
fuente
fuente
Si está hablando del nivel de anidación de la transacción actual , entonces usaría
@@TRANCOUNT
.Si está hablando del nivel de aislamiento de transacciones , use
DBCC USEROPTIONS
y busque una opción de nivel de aislamiento . Si no está configurado, se lee como comprometido .fuente
DBCC USEROPTIONS
se establece en "lectura comprometida"