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

Popular Posts