我可以在未提交读取模式下访问数据库,并且需要在操作环境中对表进行维护。我需要在一个表上获得一个排他锁,做一个工作,然后释放锁。
在此维护期间,即使读取查询也不应该取回未提交的数据。
这个问题和答案看起来很有希望。我愿意:
begin transaction;
SELECT TOP (1) 1 FROM a WITH (TABLOCK);
但是随后,SIX
在 table 上获得了锁a
。但是,这不会从选择查询中锁定表。我怎样才能获得Sch-M
桌子上的锁?最多我可以通过以下方式获得Sch-S
锁:
SELECT TOP (1) * FROM a WITH (TABLOCK);
这仍然不会阻止对表的选择查询。