Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Czy możliwe jest wykonanie wielu aktualizacji za pomocą jednej instrukcji UPDATE SQL?

Możesz użyć jednej instrukcji i wielu instrukcji przypadków

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

Oczywiście spowoduje to zapis w każdym rekordzie, a w przypadku indeksów może to stanowić problem, więc możesz odfiltrować tylko te wiersze, które chcesz zmienić:

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

To zmniejszy liczbę zapisów do tabeli.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zautomatyzować proces synchronizacji schematu bazy danych programu SQL Server

  2. Zdarzenia oczekiwania serwera SQL -2

  3. Jak włączyć usługę MSDTC w programie SQL Server?

  4. Ograniczenie unikatowe SQL w wielu tabelach

  5. 4 niesamowite zasoby monitorowania SQL Server dla administratorów baz danych