Oprava: Zablokování dochází při pokusu o operaci DML na tabulce, která obsahuje nápovědu uzamčení TABLOCK nebo uzamčení nápovědy XLOCK dvě transakce

Platí pro: Microsoft SQL Server Compact 3.5SQL Server Compact 3.5 Service Pack 2

Příznaky


Zvažte následující scénář v Microsoft SQL Server Compact 3.5:
  • Máte dvě transakce serializovatelný izolace.
  • Obě transakce zkuste provést operaci DML (dotaz/DML) v téže tabulce, která obsahuje nápovědu uzamčení TABLOCK nebo uzamčení nápovědy XLOCK.
V tomto případě dojde k zablokování.

Příčina


K tomuto problému dochází, protože obě operace počkat vzájemně XLOCK. Při kompilaci dotazu získá obě transakce získat sdílený zámek v tabulce a potom drží zámek pro izolaci serializovatelný. Při pokusu o provedení execute, dotaz v téže tabulce, která obsahuje XLOCK uzamčení pokyn, obě transakce obě transakce počkejte vzájemně XLOCK. Proto dojde k zablokování.PoznámkaK tomuto problému také dochází při obě transakce provést operaci DML na stejnou tabulku, která obsahuje nápovědu uzamčení TABLOCK.

Řešení


SQL Server Compact 3.5 Service Pack 2

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizaci 2. Další informace o možnostech získání tohoto balíčku kumulativní aktualizace pro SQL Server 2008 R2 klepněte na následující číslo článku databáze Microsoft Knowledge Base:
2289547 Kumulativní aktualizace 2 pro SQL Server Compact 3.5 Service Pack 2

Stav


Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Další informace


Další informace o zablokování naleznete na následujícím webu Microsoft Developer Network (MSDN): Další informace o DML naleznete na následujícím webu MSDN:Pro další informace o terminologii používané v aktualizacích softwaru, klepněte na následující číslo článku k zobrazení článku v databázi Microsoft Knowledge Base:
824684 Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft