[Access] Update sur clés primaires

Update sur clés primaires [Access] - SQL/NoSQL - Programmation

Marsh Posté le 11-07-2007 à 13:43:27    

Bonjour,  
j'ai un petit problème avec une requête de mise à jour.  
Elle est toute simple :
 
UPDATE Client  
SET Client.NumClient = [Nouveau numéro]
WHERE (((Client.NumClient)=[Ancien numéro]));
 
NumClient est la clé primaire de Client, jusque-là tout va bien, enfin il me semble qu'on peut changer la valeur d'une clé tant qu'on introduit pas de doublons. Le problème, c'est que NumClient sert de clé primaire dans d'autres relations aussi (pas ma faute...). J'ai demandé à ce que les mises à jour soient faites en cascade, mais toute mise à jour est refusée. J'imagine que c'est parce que c'est la clé dans d'autres relations...
 
Y a-t'il une solution à ça ?

Reply

Marsh Posté le 11-07-2007 à 13:43:27   

Reply

Marsh Posté le 11-07-2007 à 15:39:20    

Si ta clé primaire est de type "numeroauto", alors c'est à cause du type numeroauto que ça foire. Regarde la doc d'access pour voir comment faire sauter le contrôle (je sais faire sous sql server, mais ce sera clairement pas pareil)

Reply

Marsh Posté le 12-07-2007 à 08:49:27    

Non, il n'est en NuméroAuto dans aucune des 3 tables.
En essayant de lui faire faire la modif pour les 3 tables en même temps, il dit pareil, violation de clé...


Message édité par belsuncette le 12-07-2007 à 09:14:26
Reply

Marsh Posté le 13-07-2007 à 23:46:40    

doit y avoir moyen de faire un disable constraint avant de faire tes update, puis de les réactiver ensuite
par contre je ne maîtrise pas vraiment access, va falloir chercher dans la doc
 
(supposition, ou alors c'est encore plus moisi que je ne le pensais déjà :D )

Reply

Marsh Posté le 16-07-2007 à 12:53:34    

Oui en gros il faut que je supprime l'intégrité référentielle pour que ça marche... Là, je lance ma mise à jour depuis une appli VB, ça serait peut-être plus faisable de désactiver les contraintes à cet endroit, mais faut que je trouve comment !!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed