2012-01-29 1 views
0

J'ai une table appelée Address qui a une colonne CityID non nulle et une colonne DistrictID nullable.Contrainte de vérification SQL Server interrogeant d'autres tables

Je veux m'assurer que si un district est inscrit à la table, le district est effectivement un district de la ville spécifique. Puis-je faire cela avec une contrainte de vérification?

Ma structure de table est la suivante:

Ville: CityID (int), Nom (nvarchar)

District: DistrictID (int), CityID (int), Nom (nvarchar)

Adresse: AddressID (int), CityID (int), DistrictID (int)

Si cela n'est pas possible avec une contrainte de vérification, j'aimerais aussi voir la solution de déclenchement.

Répondre

4

Une clé étrangère composite contenant à la fois cityid et districtid fournirait cette vérification.

ALTER TABLE Address 
ADD FOREIGN KEY (districtid, cityid) REFERENCES district(districtid, cityid) 
Questions connexes