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