IT干货网

多线程同时修改sql表单元格

softidea 2025年05月04日 编程设计 87 0

如果您的表 BankAccount 有一列 Amount 并且特定行的该列的值可以同时被多个线程修改 所以它可能会发生,以便最后一个设置值的人获胜。

你通常如何处理这种情况?

更新:我听说在 MSSQL 中有更新锁 UPDLOCK 可以锁定正在更新的表或行,我可以在这里以某种方式吗?

请您参考如下方法:

引用当前值的更新语句将防止覆盖。所以,与其做类似

的事情
SELECT Amount FROM BankAccount WHERE account_id = 1 

(它返回为 350,你想减去 50)...

UPDATE BankAccount SET Amount = 300 WHERE account_id = 1 

UPDATE BankAccount SET Amount = Amount - 50 WHERE account_id = 1 


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!