Identity - Trouver et supprimer des doublons de comptes théoriques


Trouver et supprimer des doublons de comptes théoriques

 

Il y a deux façons de faire lorsque l’on veut chercher et supprimer des doublons dans SQL Server Management Studio :

 

1. Si l’on connait les "compte_id" du compte à garder et du doublon :


1.1 Requête pour trouver les doublons :

 

SELECT TOP (1000) [personne_id]
,c.compte_type_id
,count(*)
FROM [Hpliance].[dbo].[LIEN_PERSONNE_COMPTE] lpc
left outer join [Hpliance].[dbo].[COMPTE] c on c.compte_id = lpc.compte_id
left outer join [Hpliance].[dbo].[COMPTE_TYPE] ct on c.compte_type_id = ct.compte_type_id
GROUP BY [personne_id], c.compte_type_id
HAVING count(*) > 1

 

1.2 Requête pour voir les doublons de compte théorique :

 

/****** Script de la commande SelectTopNRows à partir de SSMS ******/
SELECT TOP (1000) [compte_id]
,[compte_login]
,[compte_password]
,[compte_type_id]
,[compte_config]
FROM [Hpliance].[dbo].[COMPTE]
where [compte_id] in (Numéro compte théorique 1,
Numéro compte théorique 2)

SELECT TOP (1000) [personne_id]
,[compte_id]
,[lien_personne_compte_config]
FROM [Hpliance].[dbo].[LIEN_PERSONNE_COMPTE]
where [compte_id] in (Numéro compte théorique 1,
Numéro compte théorique 2)

 

1.3 Requête pour supprimer le doublon :

 

delete [Hpliance].[dbo].[LIEN_PERSONNE_COMPTE]
where [compte_id]=Numéro compte théorique 2

delete from [Hpliance].[dbo].[COMPTE]
where [compte_id]=Numéro compte théorique 2

 


2. Si l’on ne connaît pas les "compte_id" ou s'il y a plusieurs doublons :

2.1 Trouver les "compte_id"

 

SELECT TOP (2000) [compte_id]
      ,[compte_login]
      ,[compte_password]
      ,[compte_type_id]
      ,[compte_config]
  FROM [Hpliance].[dbo].[COMPTE]
  Where compte_type_id = 20

 

2.2 Chercher le "compte_id" grâce au "compte_login"

 

SELECT [compte_id]
  FROM [Hpliance].[dbo].[COMPTE]
  where compte_login = 'UHgrouss'
  and [compte_type_id] = (select [compte_type_id]
  FROM [Hpliance].[dbo].[COMPTE_TYPE]
  where [referentiel_id] = 13 )

 

2.3 Supprimer la personne avec son "compte_id"

 

delete [Hpliance].[dbo].[LIEN_PERSONNE_COMPTE]
  where [compte_id] = 28285
delete from [Hpliance].[dbo].[COMPTE]
where [compte_id]=28285


This topic has been closed for comments