我使用的是CDatabase的execute,通过Insert语句进行写入操作,由于要进行上万条记录的插入(同一个表),而且每次插入前先要通过Select语句判断是否已经存在相同的记录(用CRecordset::Open,必须保证插入的数据无重复),因此整个操作执行的时间很长,不知道大家对此有什么好的优化方法?谢谢啦!
解决方案 »
- 数据库连接字符串
- 简单关于MFC
- 无效的窗口句柄
- 关于DCOM,在本地运行得好好的,拿到另一台计算机,就在CoCreateInstanceEx时出现错误(0x80070005).
- 要求显示贴图是否其主类一定为视窗(文档)类??
- 很初级的问题
- 为什么中国人的程序员的生涯很短?
- 如何把一个MFC生成的ActiveX作成一个包含按钮,编辑框的对话框,嵌在网页中?(在线等候结帖)
- 请问关于dll内函数的调用
- 如何在程序内部设置CEdit控件只准输入数字和字符两种方式之间的转换
- 请问有什么API或其他,可以“知道每次有什么数据写进硬盘”
- 如win2000启动后才插入PS2鼠标,我能不能用命令或程序让它激活?
into temptable2
from temptable
group by keyinsert tablename(...)
select ... from temptable2
where not exists (
select * from tablename
where tablename.key=temptable.key
)drop table temptable2,temptable
假设有表table,字段ID(int)(非自增),flag(int) ,Content(Varchar(20)),每次插入数据前先要用select ID from table where ID=x,如果存在,则判断Flag是否为1,如果为1,则update此条记录的falg和Content。如果不存在此条记录,则Insert此条记录。这就是我现在做的。我想问一下有没有效率更高的入库操作方法,否则对于1万条记录要执行2万条语句,速度很慢。