如何理解T-SQL中Merge语句
答案:1 悬赏:30 手机版
解决时间 2021-03-25 10:05
- 提问者网友:暮烟疏雨之际
- 2021-03-25 00:48
如何理解T-SQL中Merge语句
最佳答案
- 五星知识达人网友:慢性怪人
- 2021-03-25 01:05
执行如下SQL语句:
1
2
3
4
5
6
7
8
9
10
11
MERGE INTO Student_Target AS st --这里是目标表,它将要被源表Merge
USING Student_Source AS ss --这里是源表
ON st.Sno = ss.Sno --这里是匹配条件
WHEN MATCHED --When和Then是配套的,当st.sno=ss.sno时,用ss.sname更新st.sname,我们看到这里update后面没有写明更新的表,这里更新的是目标表
THEN UPDATE SET st.Sname = ss.Sname
WHEN NOT MATCHED BY TARGET --目标表中不存在,而源表中存在数据,那么就执行insert操作,这里by target可以省略,但是建议加上
THEN INSERT VALUES ( ss.Sno,ss.Sname)
WHEN NOT MATCHED BY SOURCE --当目标表中存在,而源表中不存在数据,那么就执行delete操作,这里使用了by source
THEN DELETE
1
2
3
4
5
6
7
8
9
10
11
MERGE INTO Student_Target AS st --这里是目标表,它将要被源表Merge
USING Student_Source AS ss --这里是源表
ON st.Sno = ss.Sno --这里是匹配条件
WHEN MATCHED --When和Then是配套的,当st.sno=ss.sno时,用ss.sname更新st.sname,我们看到这里update后面没有写明更新的表,这里更新的是目标表
THEN UPDATE SET st.Sname = ss.Sname
WHEN NOT MATCHED BY TARGET --目标表中不存在,而源表中存在数据,那么就执行insert操作,这里by target可以省略,但是建议加上
THEN INSERT VALUES ( ss.Sno,ss.Sname)
WHEN NOT MATCHED BY SOURCE --当目标表中存在,而源表中不存在数据,那么就执行delete操作,这里使用了by source
THEN DELETE
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯