Tengo un par de preguntas sobre bloqueos de actualización (U) y bloqueos exclusivos (X).Pregunta de bloqueo: bloqueo "U" frente a bloqueo "X"
1) ¿Tengo la certeza de que se coloca un bloqueo 'X' en un recurso cuando el recurso está a punto de actualizarse?
2) Estoy un poco confuso en los bloqueos U. ¿Estoy en lo cierto cuando se aplica un bloqueo U cuando se lee un recurso y SQL Server cree que podría necesitar actualizar el recurso más adelante? Si esto es correcto, ¿se aplicaría un bloqueo en "U" solo cuando se realiza una lectura dentro del contexto de una transacción? Supongo que estoy tratando de entender en qué circunstancias SQL Server cree que podría necesitar actualizar más tarde una fila que acaba de leer ahora.
Gracias - Randy
@Quassnoi - Todavía estoy un poco confundido con las cerraduras en "U". ¿Cómo determina SQL Server que una fila que se acaba de leer podría actualizarse en el futuro? ¿Es porque la lectura se realizó dentro del contexto de una transacción? Estoy intentando determinar por qué a veces se usa un candado en U en lugar de un candado en "S". –
@Randy: los bloqueos 'U' se usan para las consultas' DDL' ('UPDATE',' DELETE', 'MERGE',' SELECT FOR UPDATE'). 'S' bloqueos se utilizan para consultas de solo lectura (' SELECT') – Quassnoi
@Randy: 'REPLACE ('DDL', 'DML')' en el comentario anterior – Quassnoi