[英]Do I need transactions/locks for this concurrent update scenario in SQL Server
我想知道在以下情況下我是否真的需要事務/鎖。 我可以執行3個操作,這些操作可以同時執行任意數量(即,我可以同時運行兩個任務1和三個任務2):
任務1:
select distinct count(some_id) as my_counter from table_1;
update table_2 set counter = my_counter;
任務2:
insert into table_1 ...;
update table_2 set counter = counter + 1;
任務3:
delete from table_1 where id = ...;
update table_2 set counter = counter - 1;
我應該如何實現上面的內容以確保我不會破壞table_2的字段counter
?
非常感謝你!
幾點:
您可以將TRIGGER
用於任務2,3。 它以適當的方式鎖定表。 對於Task 1
您應該在事務中使用XLOCK
進行行鎖定
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.