INSERT IN TO DATA_BUFF (A,B,C) VALUES (SELECT * FROM DATA_INSERT WHERE DATA_INSERT.A IN (SELECT A FROM DATA_BUFF))
[/Quote]
你都说了要最原始的数据库了,我还能有什么话说呢.
你先用C#写一个查询,例如SELECT A FROM DATA_BUFF,获取DATA_BUFF中所有存在的A的值,然后拼接SQL语句。实现INSERT IN TO DATA_BUFF (A,B,C) VALUES (SELECT * FROM DATA_INSERT WHERE DATA_INSERT.A IN ({0})),{0}的部分用刚才获取的A的所有值转换为逗号分割(字符串需要带上单引号)的形式替换。这里需要注意IN字句内最大允许被逗号分割的值的数量,像ORACLE就有1000个上限的限制。有限制你就分批传递吧。
[Quote=引用 7 楼 iabswfg858 的回复:]
C# codeinsert into tablename(aa,bb,cc) select'aa','bb','cc' union all select'aa','bb','cc' union all select'aa','bb','cc'
[/Quote]
在ACCESS里面没有办法用INSERT INTO 做批量插入,很郁闷,所以我特别标注了ACCESS数据库