martes, abril 16, 2024

MERGE en SQL Server, como utilizarlo de forma sencilla

El comando MERGE en SQL Server se utiliza para combinar datos de varias tablas en una sola tabla. Es útil para actualizar o insertar datos en una tabla a partir de otra tabla o conjunto de datos.

Sintaxis básica del comando MERGE:

MERGE INTO [nombre_tabla_destino]
USING [nombre_tabla_origen]
ON [condición_de_unión]
WHEN MATCHED THEN
    [acción_update]
WHEN NOT MATCHED THEN
    [acción_insert]

Por ejemplo, si queremos actualizar la tabla «clientes» con los datos de la tabla «clientes_nuevos», podemos utilizar el siguiente comando:

MERGE INTO clientes
USING clientes_nuevos
ON clientes.id = clientes_nuevos.id
WHEN MATCHED THEN
    UPDATE SET clientes.nombre = clientes_nuevos.nombre, clientes.direccion = clientes_nuevos.direccion
WHEN NOT MATCHED THEN
    INSERT (id, nombre, direccion) VALUES (clientes_nuevos.id, clientes_nuevos.nombre, clientes_nuevos.direccion);

En este ejemplo, el comando combina los datos de las tablas «clientes» y «clientes_nuevos» utilizando el campo «id» como clave de unión. Si el «id» existe en ambas tablas, se actualizan los campos «nombre» y «direccion» en la tabla «clientes». Si el «id» no existe en la tabla «clientes», se inserta un nuevo registro en la tabla «clientes» con los datos de la tabla «clientes_nuevos».

SQL Server MERGE MERGE en SQL Server para Insert, Delete y Update con dos tablas - Ejemplo práctico usando MERGE para sincronizar dos tablas, Insert, Update y Delete en un solo…

Es importante tener copias de seguridad de las tablas involucradas antes de ejecutar el comando, ya que puede tener un impacto importante en los datos.

MERGE documento oficial Microsoft Learn

Roy Rojas
Roy Rojashttp://www.dotnetcr.com
Con más de 20 años de experiencia en programación, experto en lenguajes .NET, VB, C#, ASP.NET, Xamarin, XCode, DBA en SQL Server. Creador de dotnetcr.com, sitio web para programadores en español. royrojas.com | dotnetcr.com | GitHub
Roy Rojas
Roy Rojashttp://www.dotnetcr.com
Con más de 20 años de experiencia en programación, experto en lenguajes .NET, VB, C#, ASP.NET, Xamarin, XCode, DBA en SQL Server. Creador de dotnetcr.com, sitio web para programadores en español. royrojas.com | dotnetcr.com | GitHub