假设我有一笔交易:
BEGIN TRANSACTION
DECLARE MONEY @amount
SELECT Amount AS @amount
FROM Deposits
WHERE UserId = 123
UPDATE Deposits
SET Amount = @amount + 100.0
WHERE UserId = 123
COMMIT它按照以下顺序在两个线程上执行:
假设执行前的数量为0。
在这种情况下,在SQL Server的不同设置下会发生什么(读未读、读已读、可重复读、可序列化),到底会出现什么数量,会不会出现死锁?
https://stackoverflow.com/questions/259031
复制相似问题