IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

[DEBUTANT]Supprimer les doublons d'une table


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 213
    Points : 102
    Points
    102
    Par défaut [DEBUTANT]Supprimer les doublons d'une table
    Salut à tous,

    J'aimerai savoir si il est possible avec une requete SQL de supprimer tous les doublons d'une table.

    Précision : J'ai une de mes tables qui contien pour l'instant 10.000.000 de record, dedans il y a +- 2.000.000 de record qui sont en des doublons, j'aimerai supprimer c'est 2.000.000 de record sans perdre l'enregistrement de départ ( un des 2 doublons.

    D'avance merci de votre aide.


  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    Si tu n'as pas de clé unique sur ta table pour les différencier, il faut que tu bricoles. Une solution est de stocker les enregistrements en doublon dans une table temporaire, de les supprimer de la table principale et de les réinjecter. Après, stp, crée une clé primaire et pose des contraintes sur ta table.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    DECLARE @error int
    BEGIN TRAN
     
    SELECT *
    INTO mytemp
    FROM t1
    GROUP BY col1, col2
    HAVING count(*) > 1
    SET @error = @@ERROR
     
    DELETE t1
    FROM t1
    JOIN mytemp t2 ON t1.col1 = t2.col1
    AND t1.col2 = t2.col2
    SET @error = @error + @@ERROR
     
    INSERT t1 SELECT * FROM mytemp
    SET @error = @error + @@ERROR
     
    IF @error = 0 BEGIN
      COMMIT TRAN
      ALTER TABLE t1 ADD CONSTRAINT pk$t1 PRIMARY KEY CLUSTERED (col1, col2)
    END ELSE BEGIN
      ROLLBACK TRAN
    END

Discussions similaires

  1. supprimer les doublons dans une table
    Par mavean dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 26/06/2019, 13h26
  2. pour supprimer les doublons d'une table qcq
    Par lamjed dans le forum Oracle
    Réponses: 7
    Dernier message: 19/12/2008, 16h42
  3. [VBA-A] supprimer les doublons d'une table
    Par desdenova dans le forum VBA Access
    Réponses: 3
    Dernier message: 09/02/2007, 16h30
  4. Supprimer les doublons d'une table
    Par TheRedLed dans le forum Requêtes
    Réponses: 8
    Dernier message: 06/09/2006, 14h15
  5. Comment supprimer les doublons d'une table?!
    Par JauB dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/01/2006, 08h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo