首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

sql2000 安插不重复的数据

2014-01-08 
sql2000 插入不重复的数据表Anameidnameage1王18 2张20 3李15 4周19表Bnameidnameage1王183李15把表A数据

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

热点排行