SQL merge 学习

merge 自己理解

判断两个表的字段关系

相同的更新

前表里面没有 后表有 添加

还可以加入 如果后表有前表没有 可以删除前表有的

SQL

CREATE TABLE a
 (keycol INT PRIMARY KEY,
  col1 INT NOT NULL,
  col2 INT NOT NULL,
  col3 INT NOT NULL);

CREATE TABLE b
 (keycol INT PRIMARY KEY,
  col1 INT NOT NULL,
  col2 INT NOT NULL,
  col3 INT NOT NULL);

INSERT INTO a VALUES (1,0,0,0),(2,0,0,0);
INSERT INTO b VALUES (1,1,1,1),(3,3,3,3);
INSERT INTO a VALUES (3,0,0,0),(4,0,0,0);
INSERT INTO b VALUES (4,1,1,1),(5,3,3,3);

 

执行

merge a using
b 
on a.[keycol]=b.[keycol]
when matched then
update set a.col1=b.col1,a.col2=b.col2,a.col3=b.col3 
when not matched then
insert ([keycol],col1,col2,col3) values (b.[keycol],b.col1,b.col2,b.col3) ;

 

posted on 2012-05-23 14:50  chyenc  阅读(181)  评论(0编辑  收藏  举报

导航