我用Delphi+Access做了一个东东,想实现功能如下:
Adoquery1链接Table1,Adoquery2链接Table2,现在想把Table1中的数据(有1000多条)导入到Table2中去(Table2中的有些记录有可能和Table1中的记录重复),我用的是Adoquery2.Append;
Adoquery2.Fields[1]:=Adoquery1.Fields[1];
Adoquery2.Fields[2]:=Adoquery1.Fields[2];
.....................................
Adoquery2.post;
不过好像有两个缺点,一是速度慢,2是如果两个表的记录有重复的话,导入时就会出错,怎么解决啊?或者谁有更好一点的办法。谢谢了!
Adoquery1链接Table1,Adoquery2链接Table2,现在想把Table1中的数据(有1000多条)导入到Table2中去(Table2中的有些记录有可能和Table1中的记录重复),我用的是Adoquery2.Append;
Adoquery2.Fields[1]:=Adoquery1.Fields[1];
Adoquery2.Fields[2]:=Adoquery1.Fields[2];
.....................................
Adoquery2.post;
不过好像有两个缺点,一是速度慢,2是如果两个表的记录有重复的话,导入时就会出错,怎么解决啊?或者谁有更好一点的办法。谢谢了!
解决方案 »
- 有关RAD2010 WebApplication.ShowMessgae()的问题请大家帮忙看看。
- Delphi2011支持Win64编译吗?
- 用 odac or sdac 的朋友进来帮忙帮忙
- 如何实现MYSQL环境下去查询或者导入SQL SERVER的数据?
- Rave Reports 5.0 设计报表时,打印发票时的问题,
- tstringlist中存储问题
- Datasource.autoedit<-->DbEdit
- 急!如何使dbgrid的列头有按下去的效果?
- FastReport怎么实现大表套小表(一对多的关系),分栏
- Paradox表的索引问题
- 有关窗体显示的傻瓜问题。一经解决,马上送分!!!!!
- 世事一场大梦, 人生几度秋凉
你先选择出table1中没有在table2中的数据就是根据主键没有在后表中来实现的 not in应该是可以实现的 然后在把这些数据导入到table2中 利用 insert into table2 select (就是前面统计出来的没有存在于table2中的数据)
只是在最后导入的时候可能是需要给表起个别名就好了吧
标准的SQL语句在那里都执行的!
select * from table1 where xh not exists(select * from table2 where table1.xh=table2.xh)xh为table1和table2的主键值
(SELECT * FROM Table1 WHERE Id Not In (SELECT Id FROM Table2))
速度快,可实现你的要求.
(SELECT * FROM Table1 WHERE Id Not In (SELECT Id FROM Table2))
速度快,可实现你的要求.