sql >> Base de Datos >  >> RDS >> Sqlserver

SQL Server ROWLOCK sobre una transacción SELECCIONAR si no existe INSERTAR

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.