Una explicación...
- ROWLOCK/PAGELOCK es granularidad
- XLOCK es el modo
El nivel y el modo de granularidad y aislamiento son ortogonales.
-
Granularidad =lo que está bloqueado =fila, página, tabla (
PAGLOCK, ROWLOCK, TABLOCK
) -
Nivel de aislamiento =duración del bloqueo, simultaneidad (
HOLDLOCK, READCOMMITTED, REPEATABLEREAD, SERIALIZABLE
) -
Modo =compartir/exclusividad (
UPDLOCK, XLOCK
) -
"combinado", por ejemplo,
NOLOCK, TABLOCKX
XLOCK habría bloqueado la fila exclusivamente como quieras. ROWLOCK/PAGELOCK no lo habría hecho.