执行如下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