
if exists(select 1 from sys.procedures where name='a_act_limpiaRepetidoIntermedia') 
	DROP procedure a_act_limpiaRepetidoIntermedia;

exec('create procedure a_act_limpiaRepetidoIntermedia
	@p_tabla varchar(100)
as
BEGIN
	declare @tablaDup table (id_foranea1 int,id_foranea2 int,id int)
	declare @rept int
	
	set @rept=1
	while @rept>0 and @p_tabla=''cat_catalogo.equipo_atributo''
	begin

		insert into @tablaDup
		SELECT DISTINCT id_atributo,[id_catalogo.equipo],min(id)     
		FROM [cat_catalogo.equipo_atributo]   
		WHERE active=1
		GROUP BY id_atributo,[id_catalogo.equipo]     
		HAVING COUNT(id) > 1 
	
		update [cat_catalogo.equipo_atributo] set active=0,fechamodificacion=getdate()
		from [cat_catalogo.equipo_atributo]
		inner join  @tablaDup T0 on T0.id=[cat_catalogo.equipo_atributo].id

		select @rept=count(1) from @tablaDup
		delete from @tablaDup

	end
	
	set @rept=1
	while @rept>0 and @p_tabla=''cat_catalogo.equipo_catalogo.tempario''
	begin

		insert into @tablaDup
		SELECT DISTINCT [id_catalogo.tempario],[id_catalogo.equipo],min(id)     
		FROM [cat_catalogo.equipo_catalogo.tempario]   
		WHERE active=1
		GROUP BY [id_catalogo.tempario],[id_catalogo.equipo]     
		HAVING COUNT(id) > 1 
	
		update [cat_catalogo.equipo_catalogo.tempario] set active=0,fechamodificacion=getdate()
		from [cat_catalogo.equipo_catalogo.tempario]
		inner join  @tablaDup T0 on T0.id=[cat_catalogo.equipo_catalogo.tempario].id

		select @rept=count(1) from @tablaDup
		delete from @tablaDup
	end

	set @rept=1
	while @rept>0 and @p_tabla=''cat_catalogo.equipo_pruebaCheckList''
	begin

		insert into @tablaDup
		SELECT DISTINCT [id_pruebaCheckList],[id_catalogo.equipo],min(id)     
		FROM [cat_catalogo.equipo_pruebaCheckList]   
		WHERE active=1
		GROUP BY [id_pruebaCheckList],[id_catalogo.equipo]     
		HAVING COUNT(id) > 1 
	
		update [cat_catalogo.equipo_pruebaCheckList] set active=0,fechamodificacion=getdate()
		from [cat_catalogo.equipo_pruebaCheckList]
		inner join  @tablaDup T0 on T0.id=[cat_catalogo.equipo_pruebaCheckList].id

		select @rept=count(1) from @tablaDup
		delete from @tablaDup
	end

 END ')


