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

Hợp nhất và Hợp nhất có giống nhau trong SQL Server không?

MERGE là một câu lệnh DML (ngôn ngữ thao tác dữ liệu).
Còn được gọi là UPSERT (Update-Insert).
Nó cố gắng khớp nguồn (bảng / chế độ xem / truy vấn) với một đích (bảng / chế độ xem có thể cập nhật) dựa trên điều kiện xác định của bạn và sau đó dựa trên kết quả phù hợp, nó chèn / cập nhật / xóa hàng vào / trong / của bảng đích.
MERGE (Transact-SQL)

create table src (i int, j int);
create table trg (i int, j int);

insert into src values (1,1),(2,2),(3,3);
insert into trg values (2,20),(3,30),(4,40);

merge into  trg
using       src
on          src.i = trg.i
when not matched by target then insert (i,j) values (src.i,src.j)
when not matched by source then update set trg.j = -1
when matched then update set trg.j = trg.j + src.j
;

select * from trg order by i

+---+----+
| i | j  |
+---+----+
| 1 | 1  |
+---+----+
| 2 | 22 |
+---+----+
| 3 | 33 |
+---+----+
| 4 | -1 |
+---+----+

THAM GIA MERGE là một thuật toán kết hợp (ví dụ:HASH JOIN hoặc NESTED LOOPS).
Nó dựa trên việc sắp xếp trước tiên cả hai tập dữ liệu theo các điều kiện kết hợp (có thể đã được sắp xếp do tồn tại chỉ mục) và sau đó duyệt qua các tập dữ liệu đã sắp xếp và tìm các kết quả phù hợp.

create table t1 (i int)
create table t2 (i int)

select * from t1 join t2 on t1.i = t2.i option (merge join)

create table t1 (i int primary key)
create table t2 (i int primary key)

select * from t1 join t2 on t1.i = t2.i option (merge join)

Trong SQL Server, khóa chính ngụ ý cấu trúc chỉ mục được phân cụm có nghĩa là bảng được lưu trữ dưới dạng B-Tree, được sắp xếp theo khóa chính.

Tìm hiểu Kết hợp Hợp nhất




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MS SQL Server và JDBC:kết nối bị đóng

  2. Truy vấn để chọn dữ liệu giữa hai ngày với định dạng m / d / yyyy

  3. số cổng của SQL Server

  4. Cách sys.dm_exec_describe_first_result_set hoạt động trong SQL Server

  5. Tạo công việc đại lý máy chủ SQL bằng T-SQL