在SQL Server中合并和合并连接有什么区别?在SQL Server中合并和合并是否相同?
1
A
回答
2
MERGE是一个DML语句(数据操作语言)。
也称为UPSERT(更新 - 插入)。
它尝试根据您定义的条件将源(表/视图/查询)与目标(表/可更新视图)进行匹配,然后根据匹配结果将行插入/更新/删除到目标表的/ in /目录。
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 |
+---+----+
MERGE JOIN是一个连接算法(例如HASH JOIN或嵌套的循环)。
它基于首先根据连接条件对两个数据集进行排序(可能已经根据索引存在进行排序),然后遍历排序的数据集并查找匹配。
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)
在SQL Server主键意味着这意味着该表被存储为B树聚集索引结构中,通过主键进行排序。
相关问题
- 1. SQL Server 2008 R2合并
- 2. SQL Server复制,合并
- 3. 合并行SQL Server 2014
- 4. 合并SQL Server数据库
- 5. 与条件合并(SQL Server)
- 6. SQL Server合并行方法
- 7. SQL Server合并声明
- 8. 在SQL Server中合并字段
- 9. 在SQL Server中合并表内容
- 10. 在SQL Server中合并数据类型
- 11. 如何在SQL Server中调试合并?
- 12. 在SQL中合并相邻的行吗?
- 13. Mysql:合并相同的值
- 14. SQL Server选择并合并具有相同列的行之间的值
- 15. 合并行的列在SQL Server
- 16. 合并MS SQL Server中的行
- 17. 合并2行1 SQL Server中
- 18. 在保留SQL Server中的关系的同时合并数据
- 19. Team Foundation Server合并不合并
- 20. SQL Server合并复制 - 是否可以“仅上载”?
- 21. SQL Server是否合并复制事务感知?
- 22. 合并相同的行,并显示在新列不同的领域在SQL
- 23. SQL中的合并
- 24. 在SQL中合并来自相同表格的列
- 25. 是否可以在SQL Server 2008中将2行合并到单行中?
- 26. 多个SQL行合并成单行如果ID是相同
- 27. 在Sql中合并行
- 28. 在SQL Server中合并CTE“WITH”和“WITH XMLNAMESPACES ....”
- 29. 是否合并javascript framworks?
- 30. SQL表合并
请对下面的链接和内容 –