Pourquoi je ne peux pas mettre à jour ce tableau?

J'ai trois tables dans SQL Server 2008 R2: Country Address et Country_Address


Country a des colonnes:

CountryID Country

1, Afghanistan

2, de l'Australie


Address a des colonnes:

AddressID Address

1, 5 Smith Manière


Country_Address a des colonnes:

CountryID AddressID

1, 1

modifier: ainsi, dans l'exemple, 5 smith est une adresse pour l'Afghanistan.

J'ai vidé les tables, puis ajouté deux pays et une adresse, et puis un lien dans Country_Address entre 1 et 1. Lorsque j'essaie de mettre à jour le CountryID de 1 à 2, je ne peux pas à cause de FK contrainte. Je ne comprends pas pourquoi c'est, parce que la CountryID je suis en train d'affecter n'existe pas. Alors, comment puis-je gérer le mettre à jour?


edit1: C'est l'erreur que j'obtiens quand j'essaie de faire la mise à jour de SQL Management Studio, je reçois InvalidOperationException - "Le modèle de type '...' n'a pas pu être mis à jour." dans Visual Studio.

Aucune ligne n'a été mis à jour.

Les données de la ligne 1 n'a pas été commis.
Source De L'Erreur: .Net SqlClient De Données
Fournisseur de. Message d'erreur: La mise à JOUR
déclaration de conflit avec l'ÉTRANGER
Contrainte de CLÉ
"FK_Country_Address_Address". L'
le conflit est survenu dans la base de données
"...", tableau
"dbo.Adresse", la colonne "AddressID'.

L'instruction a été arrêtée.

Êtes-vous essayer de mettre à jour le CountryID dans "Country_Address" table? Avez-vous vérifié que vous n'avez pas CountryID comme clé primaire ou une contrainte sur la colonne? Aussi, comment peut une Adresse appartenant à plus de 1 Pays? Pourquoi ne pas vous venez de mettre le CountryID directement dans la barre d'Adresse.
Cela a été modifié un peu de mon exemple réel, mais la relation est la même, même si elle ne peut pas faire sens parfait dans cet exemple. CountryID est PK dans Country table, et FK Country_Address table. Pourquoi une contrainte d'arrêter la mise à jour que je suis en train de réaliser?

OriginalL'auteur baron | 2010-12-03