利用 Sql Server 游标删除重复记录

这段时间因项目需要导入原有的数据到新库中,遭遇了数据重复的问题,需删除重复的数据。我采用游标的方法解决此问题。 Sql 语句如下以免忘记。

代码

--删除重复数据,只保留记录号最大的
declare mycursor cursor 
    for
    select addinip from testdb group by addinip having count(addinip)>1
open mycursor
declare @ip sysname
fetch next from mycursor into @ip
while(@@fetch_status=0)
begin
    print @ip
    declare @aid int 
    select @aid=max(autoid) from testdb where addinip=@ip
    print @aid
    -- 删除重复数据,只保留记录号最大的那条记录 
    delete from testdb where autoid <> @aid and addinip=@ip

    fetch next from mycursor into @ip
end
close mycursor
deallocate mycursor 

 

时间: 2024-07-31 07:57:19

利用 Sql Server 游标删除重复记录的相关文章

SQL Server中删除重复记录的SQL语句

方法:  代码如下 复制代码            select distinct * into #tmp from tablename  drop table tablename  select * into tablename from #tmp drop table # tmp 常有时候遇到需要删除SQL Server中的重复记录,这里有一些常用的删除重复记录的SQL, 最常用的 T-SQL 语句:  代码如下 复制代码 DELETE FROM [dbo].[myTable] WHERE

有用的SQL语句(删除重复记录,收缩日志)

删除重复记录,将TABLE_NAME中的不重复记录保存到#TABLE_NAME中 select distinct * into #table_name from table_name delete from table_name select * into table_name from #table_name drop table #table_name 与此相关的是"select into"选项,可以在数据库属性 对话框中,勾起来此项,或者在Query Analyzer中执行 ex

有用的SQL语句(删除重复记录,收缩日志)_MsSql

删除重复记录,将TABLE_NAME中的不重复记录保存到#TABLE_NAME中 select distinct * into #table_name from table_name delete from table_name select * into table_name from #table_name drop table #table_name 与此相关的是"select into"选项,可以在数据库属性 对话框中,勾起来此项,或者在Query Analyzer中执行 ex

SQL SERVER常用取重复记录的SQL语句

获取某字段或几个字段有重复的数据,可限定重复几条select field1,field2 from table group by field1,field2 having count(field1)>1 获取某字段不重复的最新记录select top * from table a where id in(select max(id) from table b group by field) order by id desc 获取某字段的重复数select count(field) from ta

SQL Server2008中删除重复记录的方法分享_mssql2008

现在让我们来看在SQL SERVER 2008中如何删除这些记录, 首先,可以模拟造一些简单重复记录: 复制代码 代码如下: Create Table dbo.Employee ( [Id] int Primary KEY , [Name] varchar(50), [Age] int, [Sex] bit default 1 ) Insert Into Employee ([Id] , [Name] , [Age] , [Sex] ) Values(1,'James',25,default)

SQL语句实现删除重复记录并只保留一条_数据库其它

复制代码 代码如下: delete WeiBoTopics where Id in(select max(Id) from WeiBoTopics group by WeiBoId,Title having COUNT(*) > 1); SQL:删除重复数据,只保留一条用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 复制代码 代码如下:  select * f

SQL Server中删除重复数据的方法

数据库的使用过程中由于程序方面的问题有时候会碰到重复数据,重复数据导致了数据库部分设置不能正确设置-- 方法一declare @max integer,@id integerdeclare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) > 1open cur_rowsfetch cur_rows into @id,@maxwhile @@fetch_status=0begins

SQL Server中删除重复数据的几个方法

  数据库的使用过程中由于程序方面的问题有时候会碰到重复数据,重复数据导致了数据库部分设置不能正确设置-- 方法一 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=

SQL Server中删除重复数据的几个方法_MsSql

方法一 复制代码 代码如下: 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