sql >> Databasteknik >  >> RDS >> Sqlserver

Är MERGE en atomsats i SQL2008?

MERGE är atomär innebörd att antingen alla förändringar har begåtts eller att alla förändringar rullas tillbaka.

Det förhindrar inte dubbletter av nycklar i händelse av hög samtidighet. Lägger till holdlock hint kommer att ta hand om det.

MERGE INTO CustomerSpend WITH (HOLDLOCK) AS T 
USING ( SELECT ? AS ID, ? AS NetValue, ? AS VoidValue ) AS V 
ON T.ID = V.ID 
WHEN MATCHED THEN 
    UPDATE SET T.ID = V.ID, T.NetValue = T.NetValue + V.NetValue, T.VoidValue = T.VoidValue + V.VoidValue 
WHEN NOT MATCHED THEN 
    INSERT ( ID,NetValue,VoidValue ) VALUES ( V.ID, V.NetValue, V.VoidValue );



  1. MariaDB LENGTH() vs LENGTHB():Vad är skillnaden?

  2. Hur man på ett tillförlitligt sätt återställer MySQL-blobbar

  3. pdo infoga bild i databasen direkt - infogar alltid BLOB - 0B

  4. Rails 5.2 ActiveStorage med UUID på Postgresql