begin process at 2012 05 26 08:53:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

Access

 > 

Migration

 > 

Ajout d'une clé primaire avec des doublons


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ajout d'une clé primaire avec des doublons

jeudi 15 octobre 2009 à 16:35:14 | Ajout d'une clé primaire avec des doublons

jourdanne85

Bonjour à tous,

Voilà mon problème.
Je dois récupérer une table DM_CONSULTATION_PLAINTE (SQL Server Express).
Cette table représente en fait les plaintes enregistrées par un ostéo lors des consultations.
Voici les principaux champs : NoConsultation, Description, CodePlainte, Rang.

Pour l'instant, il n'y a pas de clé primaire et je tiens à en rajouter une.
Le problème est qu'il y a des doublons avec le même NoConsultation et le même Rang.
Le rang sert en fait à différencier les différentes plaintes d'une même consultation.

Je veux donc rajouter un champ clé primaire à cette table afin que chaque ligne soient identifiée. Cette clé doit donc avoir un numéro incrémenté de 1 pour chaque ligne de la table.

Je ne vois pas comment je peux faire.
Si quelqu'un a une solution !
Merci d'avance


mardi 20 octobre 2009 à 15:18:36 | Re : Ajout d'une clé primaire avec des doublons

jourdanne85

Réponse acceptée !
Code C# :
Après quelques recherches j'ai enfin trouvé la solution :
Mon problème était le suivant :
Je devais rajouter un Id à une table qui comportait des doublons.

Tout d'abord, j'ai utilisé un curseur qui va généré un nombre pour chaque ligne.
Pour ceci, j'ai rajouté un champ "Essai" à ma table.
Code :
DECLARE @i INT
DECLARE @Essai INT
SET @i = 1
DECLARE CURSEUR_DOUBLON_Dysfonction CURSOR
FOR    
   SELECT Essai
   FROM   DM_CONSULTATION_DYSFONCTION
FOR UPDATE

OPEN CURSEUR_DOUBLON_Dysfonction

FETCH CURSEUR_DOUBLON_Dysfonction INTO @Essai

WHILE @@FETCH_STATUS = 0
BEGIN
   UPDATE DM_CONSULTATION_DYSFONCTION
   SET    Essai = @i
   WHERE  CURRENT OF CURSEUR_DOUBLON_Dysfonction

   SET @i = @i + 1

   FETCH CURSEUR_DOUBLON_Dysfonction INTO @Essai  

END

CLOSE CURSEUR_DOUBLON_Dysfonction

DEALLOCATE CURSEUR_DOUBLON_Dysfonction

Ensuite, il faut maintenant supprimer les doublons.
Code C# :
DELETE
FROM   DM_CONSULTATION_DYSFONCTION
WHERE  DM_CONSULTATION_DYSFONCTION.Essai < ANY (SELECT Essai
                      FROM   DM_CONSULTATION_DYSFONCTION D2
                      WHERE  DM_CONSULTATION_DYSFONCTION.Essai <> D2.Essai
                        AND  DM_CONSULTATION_DYSFONCTION.Rang    = D2.Rang
						AND  DM_CONSULTATION_DYSFONCTION.NoConsultation = D2.NoConsultation
                        AND  DM_CONSULTATION_DYSFONCTION.CodeDysfonction = D2.CodeDysfonction)

Nous avons maintenant une table avec un ID pour chaque ligne et sans aucoun doublon.


Cette discussion est classée dans : table, clé, rang, primaire, doublons


Répondre à ce message

Sujets en rapport avec ce message

Clé primaire , clé étrangère [ par emmanuel9 ] Bonjour à tous, "Aieuuuuuuu" m'a dit hier que une table n'avais pas besoin de contenir une clée primaire J'ai oublier de lui demander  : Si ma tabl Jointure [ par issoux ] Bonjour voilà mon problemej'ai 3 tables  : table role :id (clé primaire)nomtable UserRoleid,( clé primaire )RoleId ( clé etrangere de role) update table à 2 clé primaire [ par adnanester ] salutvoila , j'ai une table à deux clé primaire, et pour mettre a jour une ligne de cette table je fait le requete suivante a partir de l'analyseur de Jointure table clé composé [ par didygwatinik ] Bonjour, Je me pose une question quand je veux faire une jointure, est-il préférable de la faire sur la clé primaire de la table ?Si j'ai une table av Correction de Trigger [ par 4rocky4 ] Bonjour tout le monde,Je voudrai créer des triggers qui permettent de mettre à jour des tables sous Oracle.Par exemple, si on modifie la clef primaire Récupereration par code de l'index et de la clé d'une table SQL / Access [ par FNIAMKE ] Bonsoir Mme/Mr. Comment récuperer l'index et la clé d'une table (SQL ou access) dans une réquête ou par code. Merci de m'apporter assistance. NIAM clé primaire sous SQL SERVER [ par jradbayrem ] Bayrem Salut bon c'est un question hyper debile:j'ai crée une table (je travaille sous SQL Server EXPRESS 2008) dont je veut que la clé primaire sot bd [ par farahoo ] salut quand je cree une clé primaire pour une table en access jai une fenetre qui souvre en fermant le tableau et qui signale q'un index ou une cle pr doublons d'une tables [ par yghilas ] salut à tous; et merçi de m'aider à trouver une solution à mon PBm j'ai une table qui regroupe des livres avec des numeros d'inventaire,il existe des Informix-auto increment [ par hluder ] BOnjourje voudrai savoir comment faire une auto incrémentation pour une clé primaire avec  Informix.(lors de la création d'une table)J'ai tester "auto


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,234 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales