DELETE doublons SQL server 2008

Résolu
cs_mohellebi
Messages postés
104
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
1 août 2019
- 20 avril 2014 à 14:01
yann_lo_san
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
- 5 mai 2014 à 12:15
Bonjour ,
après des recherche sur le net, afin de trouver une requête qui me permettra de supprimer les doublons dans ma table "manif" sous sql server 2008, j'ai trouvé une solutions plutôt souple :

1/Créer une colonne
ALTER manif
      ADD colid uniqueidentifier


2/remplir la colonne avec un identifient pour chaque enregistrement
UPDATE manif
SET    COLUID = newid()


3/lancer la requête qui supprime les doublons
delete from manif 
where colid in 
( select colid from manif t1 where exists 
( select colid from manif t2 where t1.colid <> t2.colid 
and t1.agence = t2.agence ) )


La procédure marche parfaitement , en revanche elle supprime tout les enregistrement en double, y compris le premier enregistrement
maintenant , je ne sais pas comment formuler ma requête pour garder le premier enregistrement

Merci d'avance pour votre précieuse aide
A voir également:

2 réponses

cs_mohellebi
Messages postés
104
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
1 août 2019
2
22 avril 2014 à 10:14
Bonjour,
pour les personnes qui aimerons savoir la solution, en fait il fallait juste mettre "> any" à la place de "in" et quelques rectifi comme =>

DELETE
FROM   manif 
WHERE  manif .COLUID > ANY
   (SELECT COLUID
    FROM   manif  T2
    WHERE  manif .COLUID <> T2.COLUID
          AND  manif .reserve = T2.Reserve )
2