我使用SQL Server并拥有简单的表:
Person (ID bigint, Name nvarchar(255))
它包含1000行(例如)。我正在使用这个SQL查询:
Update Person
Set Name = 'Jason'
Where Id = 100
我想了解SQL Server如何进行读/写锁定。它会阻塞一行(我正在更新)还是会阻止所有Person
表?
如果我使用查询,情况是否会改变?
Update Person
Set Name = 'Jason'
Where Name = 'Piter'
答案 0 :(得分:2)
我建议你阅读SQL Server Transaction Locking and Row Versioning Guide。
通常,您的查询将对更新的行进行更新锁定,除非服务器决定它应使用lock escalation并锁定页面或表/索引。