sql >> Base de Datos >  >> RDS >> Sqlserver

¿Es posible realizar múltiples actualizaciones con una sola instrucción SQL UPDATE?

Puede usar una declaración y varias declaraciones de casos

update tbl
  set title = 
    case
      when title in ('a-1', 'a.1') then 'a1'
      when title in ('b-1', 'b.1') then 'b1'
      else title
    end

Por supuesto, esto provocará una escritura en cada registro y, con los índices, puede ser un problema, por lo que puede filtrar solo las filas que desea cambiar:

update tbl
  set title = 
    case
      when title in ('a-1', 'a.1') then 'a1'
      when title in ('b-1', 'b.1') then 'b1'
      else title
    end
where
  title in ('a.1', 'b.1', 'a-1', 'b-1')

Eso reducirá el número de escrituras en la tabla.