faire une mise a jour sur deux tables sql

Petit nouveau ! | 1 Messages

17 janv. 2017, 17:05

bonjour j'éssai d'éffectuer une mise à jour sur le champ 'reference' de ma base de donnees sql.
voila en fait ma requete :

UPDATE F_ARTICLE
SET F_ARTICLE.AR_REF = LEFT([AR_Ref],12)+'1'+RIGHT([AR_Ref],4)
WHERE (((F_ARTICLE.FA_CodeFamille)LIKE'55050')AND((SUBSTRING([AR_REF],13,1))=0));

mais j'ai ce message apres execution :
Msg 547, Niveau 16, État 0, Ligne 1
L'instruction UPDATE est en conflit avec la contrainte REFERENCE "FKA_F_ARTSTOCK_AR_Ref". Le conflit s'est produit dans la base de données "SIM", table "dbo.F_ARTSTOCK", column 'AR_Ref'.
L'instruction a été arrêtée.

j'aimerai savoir comment faire pour effectuer la mise a jour sur les deux tables spontanement car ca serait lier la table F_article et F_artstock.
Cordialement

Avatar de l’utilisateur
Modérateur PHPfrance
Modérateur PHPfrance | 8755 Messages

18 janv. 2017, 11:16

salut,

tu veux modifier les clefs étrangères de ta table ?
si c'est les cas modifier les clef primaire correspondantes dans la table d'origine.
si tu as définis la clef étrangère en "update cascade" cela se fera tout seul sinon ce n'est pas possible de manière simple. (il faudra dégager la clef étrangère modifier les données et remettre la FK).

normalement on ne modifie pas une clef primaire. c'est pour cela que l'on utilise souvent des index numériques, quitte a mettre une index sur une clef candidate (typiquement une référence article).

@+
Il en faut peu pour être heureux ......