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

T-SQL Có thể thực hiện Cập nhật / Chèn chỉ với một thao tác nhanh không

SQL Server 2008 và mới hơn có câu lệnh MERGE thực hiện chính xác điều đó.

Xem Tài liệu trực tuyến về Sách MSDN trên MERGE để biết chi tiết.

Về cơ bản, bạn cần bốn điều:

  • một nguồn (bảng hoặc chế độ xem hoặc câu lệnh SELECT nội tuyến)
  • một mục tiêu
  • a THAM GIA điều kiện liên kết cả hai
  • câu lệnh cho các trường hợp có MATCH (các hàng tồn tại trong cả nguồn và đích), KHÔNG PHÙ HỢP (khi hàng chưa tồn tại trong mục tiêu), v.v.

Vì vậy, về cơ bản bạn xác định một cái gì đó như:

MERGE (targettable) AS t
USING (sourcetable) AS s
ON (JOIN condition between s and t)
WHEN MATCHED THEN
   UPDATE SET t.Col1 = s.Col1, t.Col2 = s.Col2 (etc.)
WHEN NOT MATCHED THEN
   INSERT(Col1, Col2, ..., ColN) VALUES(s.Col1, s.Col2, ......, s.ColN)

Điều này được thực hiện như một câu lệnh và được tối ưu hóa cao bởi SQL Server.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối SQL Server với SugarCRM

  2. Cách sp_describe_first_result_set hoạt động trong SQL Server

  3. SQL Server 2008 Open Master Key lỗi khi máy chủ vật lý thay đổi

  4. Không thể tạo kết nối cho màn hình từ xa cho ứng dụng C #

  5. Chọn 3 hàng đầu tiên của mỗi bảng trong cơ sở dữ liệu