Bonjour,
J'ai une table Appareil avec pour clé primaire le champ Num_inventaire_appareil.

Je veux pouvoir changer la valeur de cette clé primaire.

Pour cela j'éxécute la requête suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
insert into appareil (num_inventaire_appareil , Nom_type_appareil, Nom_marque,Date_affectation_appareil, Num_serie_appareil, Nom_statut_appareil, Date_creation_appareil, Fin_garantie_appareil, Fin_amortissement_appareil, Nom_situation_appareil
,Nom_famille,Commentaire_appareil, MAJ_appareil , Util_appareil, Compteur_appareil, Compteur_cumule_appareil, Selection_appareil, Mis_en_rebut, Inventaire_valider) 
 SELECT @num_inventaire_appareil, Nom_type_appareil, 
Nom_marque,Date_affectation_appareil, Num_serie_appareil, Nom_statut_appareil, Date_creation_appareil, Fin_garantie_appareil, Fin_amortissement_appareil, Nom_situation_appareil
,Nom_famille,Commentaire_appareil, MAJ_appareil , Util_appareil, Compteur_appareil, Compteur_cumule_appareil, Selection_appareil, Mis_en_rebut, Inventaire_valider 
 FROM APPAREIL 
WHERE Num_inventaire_appareil = @num_inventaire_appareil_old
J'ai donc un nouvel enregistrement identique à l'ancien avec la nouvelle valeur de la clé.


Mais lorsque je veux recopier les lignes des tables qui ont pour clé étrangère la clé primaire de la table Appareil, jéxécute la requête suivante :
Par exemple pour les lignes de la table MOUVEMENT


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
INSERT INTO MOUVEMENT( Date_mouvement, Num_inventaire_appareil, Nom_situation_appareil, Code_objet_mouvement, Compteur_mouvement, Numero_patient, Date_prescription, Nom_centre_rattachement, Detail, MAJ_mouvement,
 Util_mouvement,Code_association)
SELECT  Date_mouvement, @num_inventaire_appareil, Nom_situation_appareil, Code_objet_mouvement, Compteur_mouvement, Numero_patient, Date_prescription, Nom_centre_rattachement, Detail, MAJ_mouvement,
 Util_mouvement, Code_association
FROM MOUVEMENT
WHERE  Num_inventaire_appareil = @num_inventaire_appareil_old
Seulement cette dernière requête "plante" et ne copie pas la totalité des lignes.


Si vous avez une idée du problème, je vous en remercie d'avance.