怎样快速删除数据库记录中完全相同的资料?

cgh6697067 2004-10-21 06:08:41
比如一个表内有的记录是重复的(完全一样),我只要保留一条
有什么块速的方法?
我是ACCESS
...全文
141 点赞 收藏 10
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
vbman2003 2004-10-25
可以用楼上的思路
比如有数据库A,表tb,字段:id、iName、iCode

  Dim Conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim p, t As String
Dim StrConnect As String
Dim Sql As String
StrConnect = "Provider=Microsoft.Jet.OLEDB.4.0; " _
& "Data Source=" & App.Path & "\A.mdb;Persist " _
& "Security Info=False;Jet OLEDB:Database Password=abc"
Set Conn = New ADODB.Connection
Conn.Open StrConnect
'表中不重复数据的记录集
Sql = "Select Distinct * from tb "
Set rs = New ADODB.Recordset
rs.Open Sql, Conn, adOpenKeyset, adLockOptimistic
'删除表中信息
Sql = "delete * from tb"
Conn.Execute Sql
'向表中添加不重复的记录
While Not rs.EOF
Debug.Print rs!id & "/" & rs!iName & "/" & rs!iCode
Sql = "INSERT INTO tb " & _
"(id,iName,iCode) VALUES " & _
"('" & rs!id & "','" & rs!iName & "','" & rs!iCode & "')"
Conn.Execute Sql
rs.MoveNext
Wend
rs.Close
Conn.Close
回复
qq341341 2004-10-24
为了好管理,最好是建一个主键, 那怕是不用显示的"自增"型字段
回复
frankwong 2004-10-24
可以创建一个"自增"字段,
回复
cgh6697067 2004-10-24
没法建主键,我的字段特别,没有唯一性,强加一个不好控制,改动量大
回复
cgh6697067 2004-10-24
删除表 a
更改表 b 的名称为 a
------------------------
这不行,我要在软件初始化时做,每次让用户做这怎么行呢?
回复
Free_Windy 2004-10-24
用SELECT DISTINCT * from table
取出记录集,
然后,delete*from table
再将取出的不重复的数据集存入表中.
回复
jilate 2004-10-21
楼上的方案二可行,支持
回复
Tiger_Zhao 2004-10-21
最佳方案:预防为主,给表建立一个唯一主键,这样根本无法添加重复记录。

方案二:
SELECT DISTINCT * INTO b FROM a;
删除表 a
更改表 b 的名称为 a

回复
badboy168 2004-10-21
如果你的表是记录号的话你可以这样的方法

delete * from table where
回复
xmduane 2004-10-21
你可以全部查询出来,然后从第二条开始删除.
回复
发动态
发帖子

1180

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
社区公告
暂无公告