8
votes

Comment changer la valeur de la clé primaire et mettre à jour la clé étrangère en même temps

J'ai un enregistrement dans le tableau avec une mauvaise clé primaire. Je veux le changer pour corriger la valeur, mais cette valeur est utilisée dans de nombreuses autres tables.

Y a-t-il un moyen simple de mettre à jour la clé primaire et la clé étrangère au même tim?


0 commentaires

3 Réponses :


8
votes

Si les touches étrangères sont définies sur des modifications en cascade, la valeur doit changer automatiquement.


3 commentaires

Je reçois: impossible de mettre à jour la colonne d'identité 'id'.Quisery est la mise à jour [Tablea] Set ID = 8 où id = 9


Jetez un coup d'œil à Stackoverflow.com / Questions / 751522 / ...


@ user278618: vous ne peut pas mettre à jour une valeur d'identité existante - il n'y a aucun moyen de le faire.



4
votes

Assurez-vous que vos relations de clé étrangère ont sur la mise à jour de la cascade spécifiée et que la clé étrangère mettra automatiquement à jour pour correspondre à la clé primaire.

des livres en ligne: http://msdn.microsoft.com/fr -US / Bibliothèque / MS174123% 28V = SQL.90% 29.aspx

sur la mise à jour {cascade | Aucune action | ENSEMBLE Par défaut | SET NULL}

Spécifie quelle action arrive à une rangée dans la table créée lorsque Cette ligne a une référence relation et la ligne référencée est mis à jour dans la table des parents. Les La valeur par défaut n'est pas une action. Voir le Section "Remarques" plus tard dans ce sujet Pour plus d'informations.


0 commentaires

0
votes

Mise à jour d'une clé principale ne met pas à jour les clés étrangères liées, il ne supprime que les enregistrements associés sur d'autres tables, car SQL Server traite la mise à jour en tant que suppression et insertion. Ceci est SQL Server 2000, pas sûr des versions ultérieures. Utilisation de "Sur la mise à jour de cascade sur la suppression en cascade", les effets en cascade de la "Supprimer et insertion: AKA Update", supprime les enregistrements associés sur d'autres tables.


0 commentaires