Compartir a través de


Implementación de la funcionalidad MERGE

Es posible que una base de datos tenga que realizar una inserción de una actualización, en función de si ya existe una fila determinada en la base de datos.

Sin usar la MERGE instrucción , el siguiente es un enfoque que puede usar en Transact-SQL:

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

Otro método Transact-SQL para implementar una combinación:

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

Para un procedimiento almacenado compilado de forma nativa

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....  

Véase también

Problemas de migración para los procedimientos almacenados compilados de forma nativa
Construcciones de Transact-SQL no admitidas en In-Memory OLTP.