使用Merge也有一段时间了,现把Merge的用法进行简单的总结:
Merge into 数据表 别名
using (表名、视图或查询语句)
on (条件)
when matched then --匹配上后
update ...
[where ...] --where条件可选
when not matched then
insert [(字段列表)] --字段列表可选
values (值列表) -- 有字段列表时,和字段列表匹配,无列表时按数据表顺序列出全部字段对应的值
[where ...] --where条件可选
要注意的是:
1、无论是update,还是insert,命令后都不跟表名,执行对象为merge后的表名
2、update和insert后的where条件如果一样,则可以写到on条件中;如果update和insert后的where条件不一样,就只能分开写了。