Ho un paio di domande riguardanti i blocchi di aggiornamento (U) e le serrature Exclusive (X).Domanda di blocco - Blocco 'U' contro blocco 'X'
1) Sono corretto che un blocco "X" viene inserito in una risorsa quando la risorsa sta per essere aggiornata?
2) Sono un po 'confuso con le serrature a U. Ho corretto che un blocco U viene applicato quando una risorsa viene letta e SQL Server pensa che potrebbe essere necessario aggiornare la risorsa in un secondo momento? Se questo è corretto, un lock 'U' verrebbe applicato solo quando viene eseguita una lettura nel contesto di una transazione? Credo che sto cercando di capire in quali circostanze SQL Server pensa che potrebbe essere necessario aggiornare più tardi una riga che ora legge.
Grazie - Randy
@Quassnoi - Sono ancora un po 'confuso sulle serrature a "U". In che modo SQL Server determina che una riga appena letta potrebbe essere aggiornata in futuro? È perché la lettura è stata fatta nel contesto di una transazione? Sto cercando di determinare il motivo per cui a volte viene utilizzato un blocco U anziché un blocco "S". –
@Randy: I blocchi 'U' sono usati per le query' DDL' ('UPDATE',' DELETE', 'MERGE',' SELECT FOR UPDATE'). I blocchi 'S' sono usati per le interrogazioni di sola lettura (' SELECT') – Quassnoi
@Randy: 'REPLACE ('DDL', 'DML')' nel commento sopra – Quassnoi