SQLServer – Actualizar una tabla con datos de otra
MERGE Ofertarestricciones AS target USING (SELECT idOfertaHotel, hotelDiscount FROM OfertaHotel) AS SOURCE (idOfertaHotel, hotelDiscount) ON (target.idOfertaHotel = SOURCE.idOfertaHotel) WHEN MATCHED THEN UPDATE SET target.Discount = SOURCE.hotelDiscount; |
Donde Ofertarestricciones sería la tabla que quieres actualizar (tabla de destino),
USING (SELECT idOfertaHotel, hotelDiscount FROM OfertaHotel) AS source (idOfertaHotel, hotelDiscount) la consulta de origen de datos,
ON (target.idOfertaHotel = source.idOfertaHotel) el producto cartesiano para cruzar las dos tablas y
UPDATE SET target.Discount = source.hotelDiscount; el campo a actualizar de la tabla de origen a la de destino.
Probado y funcional en SQLServer 2008 en adelante. ¡Gracias Costi!
Si necesitas hacer esto mismo en Oracle, es un poco más fácil. con una simple sub-consulta lo tendrás. Aquí tienes cómo hacer un «insert into select» en Oracle: Oracle – Insertar registros desde otra tabla (insert into select)