NOLOCK Wanneer deze optie is geselecteerd, leest of wijzigt SQL Server gegevens zonder enige locks. In dit geval kan de gebruiker gegevens lezen van een Uncommitted Transaction of Roll Back, bekend als "dirty data".
HOLDLOCK Wanneer deze optie is geselecteerd, behoudt SQL Server deze gedeelde vergrendeling tot het einde van de hele transactie zonder deze onderweg vrij te geven.
UPDLOCK Wanneer deze optie is geselecteerd, gebruikt SQL Server een modify lock in plaats van een shared lock bij het lezen van data en behoudt deze lock tot het einde van de hele transactie of het commando. Deze optie zorgt ervoor dat meerdere processen tegelijkertijd data kunnen lezen, maar alleen dat proces kan de data wijzigen.
TABLOCK Wanneer deze optie is geselecteerd, plaatst SQL Server een gedeelde lock op de hele tabel totdat het commando eindigt. Deze optie zorgt ervoor dat andere processen alleen de data kunnen lezen en niet kunnen wijzigen.
PAGLOCK Deze optie is de standaardoptie, en wanneer geselecteerd, gebruikt SQL Server een gedeelde paginavergrendeling.
TABLOCKX (Exclusief Tafelslot) Wanneer deze optie wordt geselecteerd, plaatst SQL Server een lock op de hele tabel totdat het commando of de transactie is beëindigd. Dit voorkomt dat andere processen de gegevens in de tabel lezen of wijzigen.
HOLDLOCK houdt de gedeelde vergrendeling vast totdat de volledige transactie is voltooid en moet worden vrijgegeven zodra het vergrendelde object niet meer nodig is, gelijk aan het SERIALIZABLE transactie-isolatieniveau
De NOLOCK-instructie wordt uitgevoerd zonder een gedeelde vergrendeling uit te voeren, waardoor dirty reads mogelijk zijn, wat gelijk is aan het READ UNCOMMITTED transactieisolatieniveau
PAGLOCK gebruikt meerdere paginavergrendelingen waarbij één tabelslot wordt gebruikt
READPAST laat de SQL-server alle vergrendelde regels overslaan en transacties uitvoeren, en voor READ UNCOMMITTED transactieisolatieniveaus alleen RID-locks overslaan, niet pagina-, zone- en tabellocks
ROWLOCK handhaaft het gebruik van rowlocks
TABLOCKX handhaaft het gebruik van een exclusieve tabel-niveau lock, die voorkomt dat andere transacties de tabel tijdens de transactie gebruiken
UPLOCK dwingt het gebruik van updates af bij het lezen van een tabel zonder gedeelde vergrendeling
Opmerking: Het verschil tussen het vergrendelen van een tabel in een database SELECTEER * UIT de tabel MET (HOLDLOCK) Andere transacties kunnen de tabel lezen, maar kunnen niet bijwerken of verwijderen SELECTEER * UIT tabel MET (TABLOCKX) Andere transacties kunnen tabellen niet lezen, bijwerken en verwijderen |