Saltar al contenido

Actualizar múltiples registros en SQL

Después de investigar en diversos repositorios y páginas de internet finalmente hemos descubierto la respuesta que te mostraremos más adelante.

Solución:

Para unos pocos registros, podría usar:

update records
set name = case id
  when 1 then 'def'
  when 3 then 'abc'
end
where id in (1, 3)

Un poco más flexible es crear un resultado que pueda unirse a la actualización:

update r
set name = x.name
from records r
inner join (
  select id = 1, name = 'abc' union all
  select 3, 'def' union all
  select 4, 'qwe' union all
  select 6, 'rty'
) x on x.id = r.id

Simplemente puede combinar una actualización con una declaración de caso como

UPDATE records
   SET name =
     CASE
       WHEN id = 3 THEN 'abc'
       WHEN id = 1 THEN 'def'
       ELSE name
     END

;WITH vals(id, name)
     AS (SELECT 3,'abc'
         UNION ALL
         SELECT 1,'def')
UPDATE r
SET    name = vals.name
FROM   records r
       JOIN vals
         ON vals.id = r.id  

Puntuaciones y comentarios

Si crees que ha sido de utilidad nuestro post, nos gustaría que lo compartas con el resto programadores así nos ayudas a difundir esta información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *