删除数据库中重复数据的技巧
数据库的使用过程中由于程序方面的问题有时候会碰到重复数据,重复数据导致了数据库部分设置不能正确设置……
方法一
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
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
tableName
select * into tableName from #Tmp
#Tmp
发生这种重复的原因是表设计不周产生的`,增加唯一索引列即可解决。
2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下
假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集
select identity(int,1,1) as autoID, * into #Tmp from tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)
最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)
-
怎么保证Oracle数据库的安全
在操作系统下建立用户组是保证数据库安全性的一种有效方法。Oracle程序为了安全性目的一般分为两类:一类所有的用户都可执行,另一类只DBA可执行。在Unix环境下组设置的配置文件是/etc/group,关于这个文件如何配置,请参阅Unix的有关手册。保证安全性的几种方法:(1)在安...
-
ERP系统的使用说明书
一、ERP系统简介:环界ERP系统的主要功能是进行订单管理和生产管理。主要功能模块有系统管理、合同评审、库房管理、生产管理、资源管理和信息查询等。以上内容的主要操者是:综合部、供销部、生产部、技术部、质量部、库房、人力资源部和设备科。ERP系统操作说明...
-
系统工作会会议通知
会议通知是会议准备工作的重要一环。会议通知由标题、正文和落款三部分组成。今天小编为大家准备了系统工作会会议通知,欢迎阅读!系统工作会会议通知【1】所属各单位:为了总结交流经验,研究分析存在的问题,进一步贯彻落实省、市计划生育工作会议精神,做好今年计划生...
-
数据库期末考试答案
下面是小编整理的数据库期末考试答案,希望能帮助到大家!一、选择题(每题1分,共20分)1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。在这几个阶段中,数据独立性最高的是(A)阶段。A.数据库系统B.文件系统C.人工管理D.数据项管理2.数据库...