|
|
Publicado en 20/7/2016 14:02:51
|
|
|

NOLOCK Cuando se selecciona esta opción, SQL Server lee o modifica los datos sin ningún bloqueo. En este caso, el usuario puede leer datos de una transacción no comprometida o de una reversión hacia atrás, conocido como "datos sucios".
CIERRE DE LA CÁMARA Cuando se selecciona esta opción, SQL Server mantiene este bloqueo compartido hasta el final de toda la transacción sin liberarlo en el camino.
ACTUALIZACIÓN Cuando se selecciona esta opción, SQL Server utiliza un bloqueo de modificación en lugar de un bloqueo compartido al leer datos y mantiene este bloqueo hasta el final de toda la transacción o comando. Esta opción garantiza que varios procesos puedan leer datos al mismo tiempo, pero solo ese proceso puede modificar los datos.
TABLOCK Cuando se selecciona esta opción, SQL Server colocará un bloqueo compartido en toda la tabla hasta que termine el comando. Esta opción garantiza que otros procesos solo puedan leer los datos y no modificarlos.
PAGLOCK Esta opción es la predeterminada y, cuando se selecciona, SQL Server utiliza un bloqueo de página compartida.
TABLOCKX (Bloqueo de Mesa Exclusivo) Cuando se selecciona esta opción, SQL Server colocará un bloqueo en toda la tabla hasta que termine el comando o la transacción. Esto evitará que otros procesos lean o modifiquen los datos de la tabla.
HOLDLOCK mantiene el bloqueo compartido hasta que se complete toda la transacción y debe liberarse tan pronto como el objeto bloqueado no sea necesario, igual al nivel de aislamiento de transacciones SERIALIZABLE
La instrucción NOLOCK se ejecuta sin emitir un bloqueo compartido, permitiendo lecturas sucias, que es igual al nivel de aislamiento de transacciones READ UNCOMMITTED
PAGLOCK utiliza múltiples bloqueos de página donde se usa un bloqueo de tabla
READPAST permite al servidor SQL saltar líneas bloqueadas y ejecutar transacciones, y para niveles de aislamiento de transacciones READ NO comprometidos, solo saltar bloqueos de RID, no bloqueos de página, zona y tabla
ROWLOCK impone el uso de rowlocks
TABLOCKX impone el uso de un bloqueo exclusivo a nivel de tabla, que impide que cualquier otra transacción utilice la tabla durante la transacción
UPLOCK obliga a usar actualizaciones al leer una tabla sin un bloqueo compartido
Nota: La diferencia entre bloquear una tabla en una base de datos SELECT * FROM table WITH (HOLDLOCK) Otras transacciones pueden leer la tabla, pero no pueden actualizarlas ni eliminar SELECT * FROM table WITH (TABLOCKX) Otras transacciones no pueden leer, actualizar ni eliminar tablas |
Anterior:Bloqueos, lecturas sucias, lecturas irrepetibles y lecturas falsas en SQLPróximo:SQL Server analiza el bloqueo y lo libera
|