Las bases de datos tienen que ver con las operaciones de Crud. Creamos, leemos, actualizamos y eliminamos datos en varias tablas de bases de datos. Sin embargo, la mayoría de las operaciones CRUD en una base de datos requieren una lógica separada para tareas, como insertar, actualizar y eliminar.
Esto puede ser redundante rápidamente. SQL Server proporciona una forma eficiente de realizar operaciones CRUD utilizando la declaración de fusión. Microsoft introdujo la declaración de fusión en SQL Server 2008 y superior.
Este tutorial comprenderá cómo usar la instrucción SQL Server Merge para realizar múltiples operaciones en una sola consulta.
Los basicos
Tomemos un ejemplo de dónde tiene dos mesas. Las tablas de destino y fuente. Si necesita actualizar los valores en la tabla de destino en función de los valores de las tablas de origen, puede tomar tres rutas:
Para realizar las operaciones anteriores individualmente, necesitamos crear tres lógicas separadas para las operaciones de insertar, eliminar y actualizar. Sin embargo, podemos combinarlos usando la declaración de fusión.
Podemos expresar la sintaxis de la declaración de fusión como se muestra:
Fusionar Target_table usando Source_TableIdentificamos la tabla de destino y fuente y los especificamos en la cláusula de fusión. Luego especificamos una condición. La condición especificada controla cómo las filas de la tabla de origen coinciden con las tablas de destino. Piense en ello como una condición de unión.
El siguiente bloque contiene las acciones que se realizarán en función del resultado de la condición especificada.
Si la condición da como resultado una coincidencia, actualizamos los registros en la tabla de destino desde la tabla de origen.
Sin embargo, si los registros son inigualables (desde la tabla de destino), insertamos los registros faltantes en la tabla de destino.
Finalmente, si los registros son inigualables (por la tabla de destino), eliminamos los registros inigualables de la tabla de destino.
SQL Server - Ejemplo de fusión
Tomemos un ejemplo simple. Suponga que tenemos dos tablas que contienen información del producto como Products_Target y Product_Source.
El fragmento de código de ejemplo muestra las consultas SQL para crear y actualizar las tablas especificadas.
Usar salesDB;Ahora tenemos dos tablas que funcionan como objetivo y fuente. Los registros almacenados en las tablas son como se muestra:
Para sincronizar los datos entre el objetivo y la tabla de origen, podemos ejecutar una consulta de fusión como se muestra en el siguiente ejemplo:
Fusionar productos_target como tUna vez que ejecutemos la consulta anterior, el servidor SQL realizará las operaciones especificadas en función de la condición resultante.
Podemos consultar las tablas después de la operación de fusión como:
Seleccionar * de Products_source;Los valores resultantes son los que se muestran en el siguiente ejemplo:
Como notará, los registros de la tabla de origen y de destino se sincronizan con los valores actualizados, insertados y eliminados.
Conclusión
Esta guía le muestra cómo trabajar con la instrucción SQL Server Merge. Le permite realizar operaciones de insertar, actualizar y eliminar en tablas basadas en las condiciones resultantes.
Gracias por leer!