Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

É possível realizar várias atualizações com uma única instrução SQL UPDATE?


Você pode usar uma instrução e várias instruções case
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

Obviamente, isso causará uma gravação em todos os registros e, com índices, pode ser um problema, para que você possa filtrar apenas as linhas que deseja alterar:
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')

Isso reduzirá o número de gravações na tabela.