Procedure for removing duplicate records
Remove duplicate records:
IF EXISTS (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_ReDup]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)DROP PROCEDURE [dbo].[sp_ReDup]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create procedure [dbo].[sp_ReDup](
@table_name varchar(max),
@clmname varchar(255))
AS
BEGIN
declare @tablename varchar(max)=@table_name;
declare @statement varchar(max);
set @statement = 'WITH tblTemp as (select ROW_NUMBER() over(partition by '+@clmname+' order by '+@clmname+') as RowNumber ,* from '+ @tablename+') DELETE FROM tblTemp where RowNumber >1'
execute(@statement);
END
Display duplicate records:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create procedure [dbo].[sp_DisDup](
@table_name varchar(max),
@clmname varchar(255))
AS
BEGIN
declare @tablename varchar(max)=@table_name;
declare @statement varchar(max);
set @statement = 'WITH tblTemp as (select ROW_NUMBER() over(partition by '+@clmname+' order by '+@clmname+') as RowNumber ,* from '+ @tablename+') Select * FROM tblTemp where RowNumber >1'
END
Comments
Post a Comment