Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Възможно ли е да се извършват множество актуализации с един оператор UPDATE SQL?

Можете да използвате едно изявление и няколко оператора за случаи

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

Разбира се, това ще доведе до запис на всеки запис, а с индексите може да е проблем, така че можете да филтрирате само редовете, които искате да промените:

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

Това ще намали броя на записванията в таблицата.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Стойности, разделени със запетая със SQL заявка

  2. Вземете началната и крайната дата на седмицата от номера на седмицата

  3. T-SQL за намиране на име на отдалечен сървър на свързания сървър

  4. DateTime2 срещу DateTime в SQL Server

  5. Как SESSION_CONTEXT() работи в SQL Server