小二哥's blog

----zhangzs8896(小二)

导航

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

Posted on 2005-03-01 13:45  小二哥  阅读(508)  评论(0编辑  收藏  举报

现在有两张结构相同的表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  张小二