Partager via


Implémentation de la fonctionnalité MERGE

Une base de données peut avoir besoin d’effectuer une insertion d’une mise à jour, selon qu’une ligne particulière existe déjà dans la base de données.

Sans utiliser l’instruction MERGE , voici une approche que vous pouvez utiliser dans Transact-SQL :

UPDATE mytable SET col=@somevalue WHERE myPK = @parm  
IF @@ROWCOUNT = 0  
    INSERT mytable (columns) VALUES (@parm, @other values)  

Une autre méthode Transact-SQL pour implémenter une fusion :

IF EXISTS (SELECT 1 FROM mytable WHERE myPK = @parm)  
    UPDATE....  
ELSE  
    INSERT  

Pour une procédure stockée compilée en mode natif

DECLARE @i  int  = 0  -- or whatever your PK data type is  
UPDATE mytable SET @i=myPK, othercolums = other values WHERE myPK = @parm  
IF @i = 0  
   INSERT....  

Voir aussi

Problèmes de migration pour les procédures stockées compilées en mode natif
Constructions Transact-SQL non prises en charge par In-Memory OLTP