|
|
Zverejnené 20. 7. 2016 14:02:51
|
|
|

NOLOCK Keď je táto možnosť vybraná, SQL Server číta alebo upravuje dáta bez akýchkoľvek zámkov. V takom prípade môže používateľ čítať dáta z nezáväznej transakcie alebo vrátenia, známych ako "špinavé dáta".
HOLDLOCK Keď je táto možnosť vybraná, SQL Server udržiava tento zdieľaný zámok až do konca celej transakcie bez jeho uvoľnenia počas cesty.
UPDLOCK Keď je táto možnosť vybraná, SQL Server používa modifikačný zámok namiesto zdieľaného pri čítaní dát a tento zámok udržiava až do konca celej transakcie alebo príkazu. Táto možnosť zabezpečuje, že viaceré procesy môžu čítať dáta súčasne, ale iba tento proces môže údaje upravovať.
TABLOCK Keď je táto možnosť vybraná, SQL Server uloží zdieľaný zámok na celú tabuľku, kým príkaz neskončí. Táto možnosť zabezpečuje, že ostatné procesy môžu iba čítať a nemôžu údaje upravovať.
PAGLOCK Táto možnosť je predvolená a keď je vybraná, SQL Server používa zdieľaný zámok stránky.
TABLOCKX (Exkluzívny zámok stola) Keď je táto možnosť vybraná, SQL Server uzamkne celú tabuľku, kým príkaz alebo transakcia neskončí. To zabráni iným procesom čítať alebo upravovať údaje v tabuľke.
HOLDLOCK drží zdieľaný zámok až do dokončenia celej transakcie a mal by byť uvoľnený hneď, ako uzamknutý objekt nie je potrebný, čo zodpovedá úrovni izolácie transakcie SERIALIZABLE
Príkaz NOLOCK sa vykonáva bez vydania zdieľaného zámku, čo umožňuje nečisté čítania, čo zodpovedá úrovni izolácie READ UNCOMMITTED transakcie
PAGLOCK používa viacero zámkov stránok, kde sa používa jeden zámok tabuľky
READPAST umožňuje SQL serveru preskočiť akékoľvek uzamknuté riadky a vykonávať transakcie, a pre úrovne izolácie transakcií READ uncommitted preskakuje len RID zámky, nie zámky stránok, zón a tabuliek
ROWLOCK vynucuje používanie rowlockov
TABLOCKX vynucuje použitie exkluzívneho zámku na úrovni tabuľky, ktorý zabraňuje akejkoľvek inej transakcii používať tabuľku počas transakcie
UPLOCK núti používať aktualizácie pri čítaní tabuľky bez zdieľaného zámku
Poznámka: Rozdiel medzi uzamknutím tabuľky v databáze SELECT * FROM table WITH (HOLDLOCK) Iné transakcie dokážu tabuľku čítať, ale nemôžu ju aktualizovať alebo vymazať VYBRAŤ * Z tabuľky pomocou (TABLOCKX) Ostatné transakcie nemôžu čítať, aktualizovať a mazať tabuľky |
Predchádzajúci:Zámky, špinavé čítania, neopakovateľné čítania a falošné čítania v SQLBudúci:SQL Server sa pozrie na zablokovanie a uvoľní ho
|