我想把一个表中的重复项删除掉应该怎么做啊

解决方案 »

  1.   

    (1)select distinct 名字 into #  from t
         将不重复的记录提取至临时表中
    (2)TRUNCATE TABLE t
         清空原表
    (3)INSERT INTO t SELECT * FROM #
         将临时表中的记录导回来
    (4)DROP TABLE #
         删除临时表---------------------------
    (1)有见过其他朋友是通过游标删的,但效率太低。
    (2)可以把上面的SQL合成一个SQL批处理,但建议在数据库中建一个存储过程,通过存储过程来执行它,效率最高。
      

  2.   

    存储过程:
    CREATE PROCEDURE ClearRepeat ASSELECT DISTINCT * INTO # FROM T
    TRUNCATE TABLE t
    INSERT INTO t SELECT * FROM #
    DROP TABLE #GO
    -----------------------------------
    VB端调用:Public Function ClearRepeat() As Boolean    Dim cd As ADODB.Command
        
        ClearRepeat = False
        
        If Connect = False Then Exit Function
        
        Set cd = New ADODB.Command
        cd.CommandText = "ClearRepeat"
        cd.CommandType = adCmdStoredProc
        Set cd.ActiveConnection = g_Cnn
                
        g_Cnn.Errors.Clear
        cd.Execute
                    
        ClearRepeat = True
            
    aa:
        Disconnect
        
    Exit Functionerr:
      MsgBox err.Description
      Exit Function
      
    End Function
      

  3.   

    哎,不好意思,刚才才发现你是ACCESS的,真的不好意思,一直当SQL SERVER做了。ACCESS我不太懂,还是看看其他朋友的答案吧,SORRY……
      

  4.   

    还没解决吗?ACCESS我不懂,好象不支持执行多条语句的,但至少可以将
    SELECT DISTINCT * INTO # FROM T
    TRUNCATE TABLE t
    INSERT INTO t SELECT * FROM #
    DROP TABLE #
    分解成若干条查询语句来执行啊。你不如把贴子移到ACCESS那边,请人改写一下。