读书人

sql2000 安插不重复的数据

发布时间: 2014-01-08 14:18:52 作者: rapoo

sql2000 插入不重复的数据
表A

nameid name age
1 王 18
2 张 20
3 李 15
4 周 19

表B
nameid name age
1 王 18
3 李 15

把表A数据插入表B, nameid重复的就不插入

有没有比较有效率的方法
[解决办法]
IF not EXISTS(SELECT id FROM A) insert ....
[解决办法]


insert into 表B(nameid,name,age)
select nameid,name,age
from 表A a
where not exists(select 1 from 表B b where a.nameid=b.nameid)

[解决办法]
或者:
insert into 表B(nameid,name,age)
select nameid,name,age
from 表A a
where nameid not in (select nameid from 表B)


上面的方法会更好,效率更高。使用in函数一般效率都比较低
[解决办法]
启用自动标识
[解决办法]
引用:

insert into 表B(nameid,name,age)
select nameid,name,age
from 表A a
where not exists(select 1 from 表B b where a.nameid=b.nameid)


这个正确!当然也可以用以下方法(这个效率不一定高哦!只是提供一种思路):
insert into 表B
select * from (select 表A.*,表B.nameid as Bnameid from 表A a left join 表B on a.nameid=b.nameid) as AA where nameid<>Bnameid

读书人网 >asp.net

热点推荐