我有一个工具,您可以将它与DB2,Oracle和MySQL一起使用。现在我有很多死锁(SQL Server),我想避免这种情况。我有以下SQL更新查询
UPDATE [TABA]
SET FIELDA = 0
WHERE FIELDB = ? AND FIELDC = ?;
此SQL更新查询导致死锁。我想将它改为SUBSELECT_FOR_UPDATE,例如
UPDATE [TABA]
SET FIELDA = 0
WHERE FIELDB IN (SELECT FIELDB
FROM [TABA] WHERE FIELDE = 600 AND FIELDG = 5885328 FOR UPDATE);
我不知道如何在SUBSELECT(DB2,ORacle和SQL Server)中使用FOR UPDATE。
答案 0 :(得分:0)
对于SQL Server我知道
UPDATE [TABA]
SET FIELDA = 0
WHERE FIELDB IN (SELECT FIELDB
FROM [TABA] with (updlock) where FIELDE = 600 AND FIELDG = 5885328);
缺少DB2和Oracle