sql >> Database >  >> RDS >> Sqlserver

Is het mogelijk om meerdere updates uit te voeren met een enkele UPDATE SQL-instructie?

U kunt één verklaring en een aantal casussen gebruiken

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

Dit veroorzaakt natuurlijk een schrijfactie op elke record, en met indexen kan dit een probleem zijn, dus u kunt alleen de rijen uitfilteren die u wilt wijzigen:

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

Dat zal het aantal schrijfacties naar de tafel verminderen.



  1. WHERE-voorwaarde in MySQL met 16 verschillende queryvoorbeelden

  2. Verbinding maken met host PostgreSQL vanaf een zwervende virtualbox-machine

  3. Oracle SQL-ontwikkelaarstool:downloaden en installeren

  4. Eenvoudige Postgresql-instructie - kolomnaam bestaat niet