希望你喜欢

导航

使用merge 实现一条SQL执行增加或修改

比如现在又一个表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
,注意这个时候不能写表名了,因为在开头第一句已经指定了

posted on 2011-05-06 14:49  希望你喜欢  阅读(465)  评论(0编辑  收藏  举报