Fusionando Datos con la Sentencia MERGE
A partir de la versión 2008 R2 de SQL Server tenemos disponible la sentencia Merge (). Esta sentencia permite actualizar una tabla objetivo basándose en el resultado de una unión con una tabla fuente. Es decir, puedo mantener actualizada una tabla en base a la información exigente en otra tabla, siempre y cuando las dos tengan un dato en común, como un código. Esta tarea facilita el mantenimiento de tablas de tipo maestro cuando la información se obtiene de diferentes fuentes o de fuentes externas. El efecto que se quiere lograr es que en una sola sentencia se puedan realizar varias aciones. Típicamente esto implica:
- Actualizar datos: Si se encuentra el código de unión tanto en la tabla de origen como en la de destino, se actualizan mediante un UPDATE los datos de la tabla de destino.
- Insertar datos: Si existe un código de unión en la tabla de origen pero no existe en la de destino, se inserta mediante un INSERT los datos en la tabla de destino.
- Eliminar datos: Si no existe un código de unión en la tabla de origen pero fi existe en la de destino, se elimina mediante un DELETE los datos de la tabla de destino.
Si desea obtener el script con los ejemplos, hacer clic en la sigiuente imagen:
Analicemos un caso: Supongamos que queremos actualizar nuestra tabla Empleado en base a […]