比较同结构的两个表的记录数目,并做相应操作!

来源:互联网 发布:单片机1602液晶显示 编辑:程序博客网 时间:2024/04/26 13:23

现在有两张结构相同的表A表B,如下:

字段1   字段2   字段3   字段4
 .       .       .       .
 .       .       .       .
 .       .       .       .

首先判断表B的行数是不是比表A大,如果大的话,就将表B的内容写入表A,并且将表B与表A有差异的行写入表C

if (select count(*) from B)>(select count(*) from A)
begin
     insert into C select * from B where checksum(*) not in(select checksum(*) from A)  
     insert into A select * from B
end

一般会综合两个同结构的表的记录,并将所有记录汇集到一个表中。
create table A (ID VARCHAR(3),Yonghu varchar(8))
insert into A
select '001','张忠生' union all
select '003','张小二'

create table B( ID VARCHAR(3),Yonghu varchar(8))
insert into B
select '001','张忠生' union all
select '002','鹿衡'

---将A、B表的差异部分插入A表,也就是A表将是记录最全的:
insert into A
select * from B where checksum(*) not in (select checksum(*) from A)

此时A表中的内容:
ID   Yonghu  
---- --------
001  张忠生
002  鹿衡
003  张小二


文章来源于 http://www.cnblogs.com/zhangzs8896 版权归原作者所有