(1)select distinct 名字 into # from t 将不重复的记录提取至临时表中 (2)TRUNCATE TABLE t 清空原表 (3)INSERT INTO t SELECT * FROM # 将临时表中的记录导回来 (4)DROP TABLE # 删除临时表--------------------------- (1)有见过其他朋友是通过游标删的,但效率太低。 (2)可以把上面的SQL合成一个SQL批处理,但建议在数据库中建一个存储过程,通过存储过程来执行它,效率最高。
存储过程: 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
还没解决吗?ACCESS我不懂,好象不支持执行多条语句的,但至少可以将 SELECT DISTINCT * INTO # FROM T TRUNCATE TABLE t INSERT INTO t SELECT * FROM # DROP TABLE # 分解成若干条查询语句来执行啊。你不如把贴子移到ACCESS那边,请人改写一下。
将不重复的记录提取至临时表中
(2)TRUNCATE TABLE t
清空原表
(3)INSERT INTO t SELECT * FROM #
将临时表中的记录导回来
(4)DROP TABLE #
删除临时表---------------------------
(1)有见过其他朋友是通过游标删的,但效率太低。
(2)可以把上面的SQL合成一个SQL批处理,但建议在数据库中建一个存储过程,通过存储过程来执行它,效率最高。
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
SELECT DISTINCT * INTO # FROM T
TRUNCATE TABLE t
INSERT INTO t SELECT * FROM #
DROP TABLE #
分解成若干条查询语句来执行啊。你不如把贴子移到ACCESS那边,请人改写一下。