Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

È possibile eseguire più aggiornamenti con una singola istruzione UPDATE SQL?

Puoi utilizzare una dichiarazione e più dichiarazioni di casi

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

Ovviamente, ciò causerà una scrittura su ogni record e, con gli indici, può essere un problema, quindi puoi filtrare solo le righe che desideri modificare:

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

Ciò ridurrà il numero di scritture sulla tabella.