sql >> Database teknologi >  >> RDS >> Sqlserver

Er MERGE en atomsætning i SQL2008?

MERGE er atomisk, hvilket betyder, at enten er alle ændringer begået eller alle ændringer rulles tilbage.

Det forhindrer ikke duplikerede nøgler i tilfælde af høj samtidighed. Tilføjer holdlock tip vil tage sig af 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. Sparer brugerens højde og vægt

  2. MySQL pivotforespørgsel

  3. MySQL - Gruppér efter med Bestil efter DESC

  4. Har problemer med php og ajax søgefunktion