日期:2014-05-18  浏览次数:20472 次

XLOCK 与 TABLOCKX 的区别
大家好,最近正在学习SQL server 2000. 碰到一个迷惑的问题,在很多网站上找了,得到的回答也是莫凌两可,不知群里的好汉们能否帮忙详细讲解一下: XLock 和 TablockX的区别 以及 XLOCK + Tablock 是否等于 TABLOCKX 的疑问。 
赶鸡不尽啊!



------解决方案--------------------
XLock 是排他锁
Tablock 是表锁


Tablockx 是排他锁+表锁


如果只使用XLock, sql server 会自行确定使用行锁页锁还是表锁

------解决方案--------------------
xlock 排他锁,如果不与 ROWLOCK、TABLOCK 和 PAGELOCK 一起使用,则会设置行 x 锁或索引码 x 锁。
tablock 表锁,如果不与 xlock 一起使用,则设置表 s 锁。
tablockx 表级 x 锁。

lz 可以自己试验一下,用“事件跟踪器”跟踪一下锁的请求/释放事件。