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

cgh6697067 2004-10-21 06:08:41
比如一个表内有的记录是重复的(完全一样),我只要保留一条
有什么块速的方法?
我是ACCESS
...全文
168 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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
  • 打赏
  • 举报
回复
你可以全部查询出来,然后从第二条开始删除.

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧