insert into a(col1,col2,col3.....) select (col1,col2,col3.....) from b where not exists(select * from a where not exists(select * from b))
insert into a select * from b
先此谢过楼上各位打下,但好像不行,可能小弟愚钝,我再重复一遍问题,烦请大虾具体点。特此感谢。a表与b表结构一样col1(自增, 主键) col2(唯一约束),col3a表有如下记录col1 col2 col3 1 A a 2 B b 3 C c 4 D db表有如下记录col1 col2 col3 1 E e 2 D d 3 F f 4 B b 现将b表加进a表中后,a表得出如下结果: col1 col2 col3 1 A a 2 B b 3 C c 4 D d 5 E e 6 F f
insert into a(col2,col3) select col2,col3 from b where col2 not in(select col2 from a)
谢过楼上jary12581大虾,试验成功,若问题改为a表与b表结构一样col1(自增, 主键) col2(唯一约束,nvarchar),col3(nvarchar)a表有如下记录col1 col2 col3 1 A a 2 B null值 3 C c 4 D 4 5 E 5b表有如下记录col1 col2 col3 1 E e 2 D d 3 F f 4 B b 把b表加进a后,a的结果为col1 col2 col3 1 A a 2 B b 3 C c 4 D d 5 E e 6 F f即,col2相同时,A中的col3的值被B中col3的值取代我这人特别麻烦,还望大虾们见谅。再次表示感谢。
update table2 set table2.col3=table1.col1 where table1.col2=table2.col2 and table1.col1=table2.col1
update a set a.col3=b.col3 from a,b where a.col2=b.col2
update a set a.col3=b.col3 from b //这里表a可以省去 where a.col2=b.col2
select * from a
union all
select * from b
select (col1,col2,col3.....) from b where
not exists(select * from a where not exists(select * from b))
select * from b
1 A a
2 B b
3 C c
4 D db表有如下记录col1 col2 col3
1 E e
2 D d
3 F f
4 B b 现将b表加进a表中后,a表得出如下结果:
col1 col2 col3
1 A a
2 B b
3 C c
4 D d
5 E e
6 F f
select col2,col3 from b where col2 not in(select col2 from a)
1 A a
2 B null值
3 C c
4 D 4
5 E 5b表有如下记录col1 col2 col3
1 E e
2 D d
3 F f
4 B b 把b表加进a后,a的结果为col1 col2 col3
1 A a
2 B b
3 C c
4 D d
5 E e
6 F f即,col2相同时,A中的col3的值被B中col3的值取代我这人特别麻烦,还望大虾们见谅。再次表示感谢。
from a,b where a.col2=b.col2
set a.col3=b.col3
from b //这里表a可以省去
where a.col2=b.col2