level 13
SQL 数据添加问题 我就卡在这里了 请教各位高招 谢谢
我用循环能够完美解决 大问题是 效率问题
两个表 RS RS2 结构完全一样
要将RS2数据全部添加到RS 但是如果RS表里面 ID 已存在则跳过 不能添加
感谢各位帮助
2015年12月06日 01点12分
1
level 11
老师有没有想过这个思路,不想添加已经存在的ID还有一种办法就是在表RS2里不产生这个记录。如果iD设置为主键,当产生和的ID和前面相同的时候就会报错,能不能处理这个错误让它不报错,直接不添加就行了。如果老师的主键不是ID,而且别的,那么可以再创建一张表,那张表只要储存所有的ID,且主键就是ID,每次产生的数据要记录先在这张表记录ID,如果可行在把记录在RS表中生成。
就是不知道能不能用处理那个报错,小弟没试过……
2015年12月06日 03点12分
3
level 11
给个思路试试。id按顺序查询出来,按大小分段,只需检测原表最大id试下。
2015年12月06日 05点12分
4
level 13
这是最笨的代码 使用循环将本地st.mdb数据库里面的STorder这张表里面所有的数据 判断不重复的订单编号字段STorderNo 添加到SQL数据库里面的STorder这张表
下面代码可以顺利达到目的 但就是 效率 问题,慢死了
就是因为没效率 所以我想优化 学习SQL高级语句 不使用循环 就这么简单
Private Sub Command1_Click()
Call LinkLocal
Call OpenLocalMDB(Rs, "StOrder")
Call LinkSQL
Call OpenSQL(Rs2, "StOrder")
'*****************************************
If Rs.RecordCount = 0 Then Exit Sub
'***************************************
Rs.MoveFirst
For i = 0 To Rs.RecordCount - 1
DoEvents
If SearchDATA(Rs2, "STorderNo", Rs.Fields("STorderNo")) = False Then
Rs2.AddNew
For j = 0 To Rs.Fields.Count - 1
If Not CheckIsNull(Rs.Fields(j)) Then Rs2.Fields(j) = Rs.Fields(j)
Next j
Rs2.Update
End If
If Not Rs.EOF Then Rs.MoveNext
If Rs.EOF Then Exit For
Next i
MsgBox "添加完成!", vbOKOnly, "数据库不重覆添加测试"
End Sub
2015年12月06日 06点12分
5