我爱Aspx >> 数据库 >> 删除数据库中重复数据的几个方法删除数据库中重复数据的几个方法
>
方法一
declare @max integer,@id integer
declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) > 1
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
delete from 表名 where 主字段 = @id
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0
方法二
有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。
1、对于第一种重复,比较容易解决,使用
select distinct * from tableName
就可以得到无重复记录的结果集。
如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。
【我对这篇文章有话说?】
更改数据库中表的所属用户的两个..[05-22]
SQL SERVER中直接循环写入数据[05-22]
Sql Server数据库的备份和恢复措..[05-22]
利用数据库日志恢复数据到时间点..[05-22]
SQL Server2000数据库文件损坏时..[05-22]
SQL Server 7.0数据库的六种数据..[05-22]
当SQL Server数据库崩溃时如何恢..[05-22]
将ACCESS的数据库转化为SQL SERV..[05-22]
ms sql server数据库无法输入简单..[05-22]
查询数据的最大排序问题(只能用..[05-22]
更改数据库中表的所属用户的两个..[05-22]
SQL SERVER中直接循环写入数据[05-22]
维护Sql Server中表的索引[05-22]
Sql Server全文搜索中文出错的问..[05-22]
SQL Server补丁安装常见问题[05-22]
Sql Server数据库的备份和恢复措..[05-22]
利用数据库日志恢复数据到时间点..[05-22]
SQL Server2000数据库文件损坏时..[05-22]
存储过程编写经验和优化措施[05-22]
关于SQL Server中几个未公布的访..[05-22]