我有一个涉及多个表的事务。在我从EDITED_TABLE
中删除一些记录后,我需要防止向TABLE_TO_BE_LOCKED
插入数据。目前我正在使用TABLOCKX
DELETE EDITED_TABLE FROM EDITED_TABLE
left join TABLE_TO_BE_LOCKED with (TABLOCKX) on ....
WHERE ...
我需要防止向
TABLE_TO_BE_LOCKED
插入新记录,但我希望保留读取它的可能性。在DELETE
后,TABLE_TO_BE_LOCKED
仍未更改,这是显式锁定的原因。我能否使用
TABLOCK, HOLDLOCK
代替TABLOCKX
?注:
我知道如何锁定SQL中的表以进行插入操作?。但是有一个结果不要这样做以防止主键重复。
SELECT FOR UPDATE
和事务呢? - millimoose