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 :

Champs auto incrémenté


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2007
    Messages : 138
    Par défaut Champs auto incrémenté
    Bonjour tout le monde.
    SVP comment faire pour supprimer les doublons d'une table, sachant que je lui ai ajouté un champ "Identity" (auto incrémenté) ?
    j'ai déja essayé mais ca marche pas.
    j'obtient en resultat la suppression de tout les champ en double. (Je veux supprimer tout les doublons et ne garder dans ma table qu'un seul exemplaire)

    Des requettes de suggestion ?

    Merci d'avance pour vos reponses

  2. #2
    Membre très actif Avatar de Sacha999
    Inscrit en
    Mars 2007
    Messages
    294
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mars 2007
    Messages : 294
    Par défaut
    Tu fais une jointure sur la table avec lui-meme sur les champs qui contiennent le doublon


    Champ_Doublon1: 1er champs qui contient un doublon
    Champ_Doublon2: 2e champs qui contient un doublon
    etc....

    Champ_Autoincrement: Ton champ qui est auto-increment


    DELETE T1
    FROM TA_TABLE T1
    INNER JOIN TA_TABLE T2 ON T2.Champ_Doublon1 = T1.Champ_Doublon1
    AND T2.Champ_Doublon2 = T1.Champ_Doublon2
    (etc...)
    WHERE T1.Champ_Autoincrement > T2.Champ_Autoincrement


    Ca va te supprimer tous les doublons et garder que ceux dont le Champ_Autoincrement a la valeur la plus petite (si tu veux la valeur la plus grande, tu inverse le ">" en "<" )

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2007
    Messages : 138
    Par défaut
    En fait j'ai fais ce traitement mais ca n'a pas marché.
    Et merci avant tout pour ta réponse.

    Le truc est de rajouter une boucle WHILE a ce traitement, car sans la vboucle, ca ne supprime qu'un seul doublon par article, donc dans le cas ou on aura + de deux lignes en double, il y aura tjrs des doublons.
    avec la boucle WHILE, et avec un test sur @@ROWCOUNT, ca marche.

    Merci encore une fois pour ta réponse

    Bonne programmation

  4. #4
    Membre très actif Avatar de Sacha999
    Inscrit en
    Mars 2007
    Messages
    294
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mars 2007
    Messages : 294
    Par défaut
    Cool que ca fonctionne

    Sinon un autre truc sans faire de boucle et qui doit fonctionner

    DELETE FROM TA_TABLE
    WHERE Champ_Autoincremente NOT IN
    (
    SELECT Max(Champ_Autoincrement)
    FROM TA_TABLE
    GROUP BY Champ_Doublon1, Champs_Doublon2 (,etc...)
    )

    La sous-requete affiche les Champ_Autoincrement a conserver, et donc on supprime tout ceux qui n'en font pas parti
    La tu conserve les Champ_Autoincrement les plus grand, pour garder les plus petit tu fais un Min()

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Connaître la valeur d'un champ auto incrémenté
    Par soltani1 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/05/2006, 14h55
  2. [EJB2.1 Entity] [Débutant] Champs auto-incrémenté (identity)et EJB
    Par Houbbba dans le forum Java EE
    Réponses: 9
    Dernier message: 04/04/2006, 19h15
  3. champ auto incrémenté
    Par Kerod dans le forum Langage SQL
    Réponses: 6
    Dernier message: 21/09/2005, 17h29
  4. [BCB5][FB 1.5]IBDataSet et champ Auto-incrémenté
    Par Sitting Bull dans le forum Connexion aux bases de données
    Réponses: 4
    Dernier message: 21/07/2004, 15h37
  5. [JDO]Hibernate : Mapping d'un champ auto-incrémenté
    Par brice.antoine dans le forum Hibernate
    Réponses: 4
    Dernier message: 02/04/2004, 10h36

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