Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Có thể thực hiện nhiều cập nhật chỉ với một câu lệnh CẬP NHẬT SQL không?

Bạn có thể sử dụng một câu lệnh và một số câu lệnh trường hợp

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

Tất nhiên, điều này sẽ gây ra việc ghi trên mọi bản ghi và với các chỉ mục, nó có thể là một vấn đề, vì vậy bạn chỉ có thể lọc ra những hàng bạn muốn thay đổi:

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

Điều đó sẽ giảm số lần ghi vào bảng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm kiếm chuỗi ký tự đại diện Trigram trong SQL Server

  2. Mệnh đề VALUES trong SQL Server

  3. Xóa tài khoản thư cơ sở dữ liệu trong SQL Server (T-SQL)

  4. Giải pháp phân trang tốt nhất sử dụng SQL Server 2005?

  5. Làm cách nào để thoát khỏi dấu phần trăm trong T-SQL?