REPLACE INTO

-- Anteriormente en Sql Server

IF EXISTS(SELECT 'HOLA' FROM MiTabla WHERE Llave1 = @Llave1 AND LlaveN = @LlaveN)
 UPDATE MiTabla SET Valor1 = @Valor1, ValorN = @ValorN
 WHERE Llave1 = @Llave1 AND LlaveN = @LlaveN
ELSE
 INSERT INTO MiTabla(Llave1, LlaveN, Valor1, ValorN)
 VALUES (@Llave1, @LlaveN, @Valor1, @ValorN)

-- Ahora con Sql Server 2008

MERGE MiTabla AS T1
 USING (SELECT @Llave1, @LlaveN) AS T2 (Llave1, LlaveN)
 ON (T1.Llave1 = T2.Llave1 AND T1.LlaveN = T2.LlaveN)
WHEN MATCHED THEN
 UPDATE SET Valor1 = @Valor1, ValorN = @ValorN
WHEN NOT MATCHED THEN
 INSERT (Llave1, LlaveN, Valor1, ValorN)
 VALUES (@Llave1, @LlaveN, @Valor1, @ValorN);

-- Algo que MySql tiene desde hace varios años

REPLACE INTO MiTabla(Llave1, LlaveN, Valor1, ValorN)
VALUES (@Llave1, @LlaveN, @Valor1, @ValorN)

No hay comentarios:

Publicar un comentario