34,593
社区成员
发帖
与我相关
我的任务
分享
注意: 锁定数据库的一个表的区别
SELECT * FROM table WITH (HOLDLOCK)
其他事务可以读取表,但不能更新删除
SELECT * FROM table WITH (TABLOCKX)
其他事务不能读取表,更新和删除
HOLDLOCK:将共享锁保留到事务完成,而不是在相应的表、行或数据页不再需要时就立即释放锁
TABLOCKX 使用表的排它锁,该锁可以防止其它事务读取或更新表,并在语句或事务结束前一直持有
update tb
set ...
FROM tb WITH (TABLOCKX)
update tb
set ...
FROM tb WITH (HOLDLOCK)