sql >> Database >  >> RDS >> Sqlserver

Is MERGE een atomaire instructie in SQL2008?

MERGE is atomair, wat betekent dat ofwel alle wijzigingen worden doorgevoerd of dat alle wijzigingen worden teruggedraaid.

Het voorkomt geen dubbele sleutels in geval van hoge gelijktijdigheid. holdlock toevoegen hint zal daarvoor zorgen.

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. Hoe queryparameters in MySQL Query Browser in te stellen?

  2. VBS en het register gebruiken om te bepalen welke versie en 32 versus 64 bit oracle-stuurprogramma's zijn geïnstalleerd

  3. Samengestelde unieke beperking afdwingen die afhangt van de waarde van de bovenliggende kolom

  4. SQL-puntnotatie