NOLOCK Când această opțiune este selectată, SQL Server citește sau modifică datele fără niciun blocaj. În acest caz, utilizatorul poate citi date dintr-o Tranzacție Neangajată sau Anulare, cunoscută sub numele de "date murdare".
BLOCAT DE REZERVĂ Când această opțiune este selectată, SQL Server menține această blocare partajată până la sfârșitul întregii tranzacții, fără a o elibera pe drum.
ACTUALIZARE Când această opțiune este selectată, SQL Server folosește un blocaj modify în loc de un blocaj partajat la citirea datelor și menține acest blocaj până la sfârșitul întregii tranzacții sau comenzi. Această opțiune asigură că mai multe procese pot citi datele simultan, dar doar acel proces poate modifica datele.
TABLOCK Când această opțiune este selectată, SQL Server va plasa un blocaj comun pe întregul tabel până la sfârșitul comenzii. Această opțiune asigură că alte procese pot doar citi, nu pot modifica datele.
PAGLOCK Această opțiune este cea implicită, iar când este selectată, SQL Server folosește un blocat de pagină partajat.
TABLOCKX (Blocare exclusivă a tabelului) Când această opțiune este selectată, SQL Server va plasa un blocat pe întregul tabel până la încheierea comenzii sau tranzacției. Acest lucru va împiedica alte procese să citească sau să modifice datele din tabel.
HOLDLOCK menține blocajul partajat până la finalizarea întregii tranzacții și ar trebui să fie eliberat imediat ce obiectul blocat nu mai este necesar, egal cu nivelul de izolare al tranzacțiilor SERIALIZABILE
Instrucțiunea NOLOCK este executată fără a emite un blocaj partajat, permițând citiri murdare, care este egal cu nivelul de izolare al tranzacțiilor READ UNCOMMITTED
PAGLOCK folosește multiple blocări de pagină unde se folosește un blocaj de tabel
READPAST permite serverului sql să sară peste orice linii blocate și să execute tranzacții, iar pentru nivelurile de izolare a tranzacțiilor READ UNCOMMITTED, să sară doar blocările RID, nu și blocările de pagină, zonă și tabel
ROWLOCK impune utilizarea rowlock-urilor
TABLOCKX impune utilizarea unui blocaj exclusiv la nivel de tabel, care împiedică orice altă tranzacție să folosească tabelul în timpul tranzacției
UPLOCK forțează utilizarea actualizărilor atunci când citești un tabel fără blocare partajată
Notă: Diferența dintre blocarea unui tabel într-o bază de date SELECT * FROM table WITH (HOLDLOCK) Alte tranzacții pot citi tabelul, dar nu pot actualiza sau șterge SELECT * FROM table WITH (TABLOCKX) Alte tranzacții nu pot citi, actualiza și șterge tabele |