比如现在又一个表A
里面有字段 ID和Name
那么基本语法是
merge A as a using (select '1' as ID , '张三' as Name) as b
on a.ID=b.ID
when not matched then
insert( ID,Name)
values(b.ID,b.Name)
when matched then
update set a.Name=b.Name
----------先分析第一句-------
merge A as a using (select '1' as ID , '张三' as Name) as b
这句话中的A是指定要对哪个表进行操作, using (select '1' as ID , '张三' as Name) as b 是将参数包装成一个临时表,记得使用 using 可以释放资源
----------第二句-------
on a.ID=b.ID 是指定使用什么判断条件,一般是使用主键匹配
----------第三句-------
when not matched then 如果不匹配的情况,则执行
insert( ID,Name)
values(b.ID,b.Name)
,注意这个时候不能写表名了,因为在开头第一句已经指定了
----------第四句-------
when matched then 如果匹配的情况,则执行
update set a.Name=b.Name
,注意这个时候不能写表名了,因为在开头第一句已经指定了