Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Clé étrangère vers clé non primaire

Si vous voulez vraiment créer une clé étrangère vers une clé non primaire, il DOIT être une colonne qui a une contrainte unique dessus.

À partir de Livres en ligne :

Une contrainte FOREIGN KEY n'a pas besoin d'être liée uniquement à une contrainte PRIMARYKEY dans une autre table; il peut également être défini pour référencer les colonnes d'une contrainte UNIQUE dans une autre table.

Donc dans votre cas si vous faites AnotherID unique, il sera permis. Si vous ne pouvez pas appliquer une contrainte unique, vous n'avez pas de chance, mais cela a vraiment du sens si vous y réfléchissez.

Bien que, comme cela a été mentionné, si vous avez une clé primaire parfaitement bonne comme clé candidate, pourquoi ne pas l'utiliser ?