Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Est-il possible d'effectuer plusieurs mises à jour avec une seule instruction UPDATE SQL ?

Vous pouvez utiliser une instruction et plusieurs instructions de cas

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

Bien sûr, cela entraînera une écriture sur chaque enregistrement, et avec les index, cela peut être un problème, vous pouvez donc filtrer uniquement les lignes que vous souhaitez modifier :

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')

Cela réduira le nombre d'écritures sur la table.