1、HOLDLOCK
其他事务可以读取,但不能更新删除
// language: sql
BEGIN TRAN
SELECT * FROM ceb_Area WITH(ROWLOCK,HOLDLOCK) where ID=1--行锁
SELECT * FROM ceb_Area WITH(TABLOCK,HOLDLOCK) where ID=1--表锁
WAITFOR DELAY '00:00:10'
COMMIT TRAN;
2、TABLOCKX 排他表锁
其他事务不能读取表,更新和删除
// language: sql
BEGIN TRAN
SELECT * FROM CheweiCustoms WITH(TABLOCKX) WHERE id=313;
UPDATE CheweiCustoms SET Name='abccc' WHERE id = 313;
SELECT * FROM CheweiCustoms WHERE id=313;
WAITFOR DELAY '00:00:10';
COMMIT TRAN;
同一个事物内,可以操作被锁住的表。其它事物不能操作,必须等锁表的事物完成后才行。