UPSERT (MERGE) - update or insert-if-not-exists
/SQL/UPSERT (MERGE) - update or insert-if-not-exists.sql
MERGE INTO compteur_facture AS cofa
USING (SELECT 2, 20) AS myKey(facso_id, expt_id)
ON myKey.facso_id = cofa.facso_id AND myKey.expt_id = cofa.expt_id -- un compteur par (facso_id, expt_id)
WHEN MATCHED THEN
UPDATE SET cofa_compteur = cofa_compteur + 1 -- incrémente le compteur (/!\ si plusieur lignes matches, elles sont toutes traitées...)
WHEN NOT MATCHED THEN
INSERT (facso_id, expt_id, cofa_compteur) VALUES(myKey.facso_id, myKey.expt_id, 1) -- insère/crée le nouveau compteur
OUTPUT INSERTED.cofa_compteur, $action;
;