SQL Server Management Studio - ajout de la clé étrangère de confusion?
Je trouve qu'il est toujours déroutant pour ajouter des clés étrangères de la table primaire dans Management Studio.
Permet de dire que j'ai un
Table1
{
ID int, -- Primary Key
Table2ID int, -- Refers to Table2's ID
}
Table2
{
ID int, -- Primary Key
SomeData nvarchar(50)
}
Je suis l'ajout d'une clé étrangère de la table 1 par Right Click -> Relationships -> Table and column specification
. Je suis en train de "Primaire" popups à la Table2, ID et "Clé Étrangère de la Table" pour Table1, Table2ID.
Mes questions:
-
Ne devrait pas Table2 être listé pour
"La Clé étrangère de la Table" Table1 et pour
Clé Primaire? Est ma compréhension
de mal? -
Lorsque j'enregistre je reçois une alerte "Les tableaux suivants seront enregistrées dans votre base de données." et il montre les deux tables. Je n'ai vraiment pas l'obtenir. J'ai seulement changé la Table1. Pourquoi est le deuxième tableau ci?
Vous devez vous connecter pour publier un commentaire.
Pourquoi ne pas simplement utiliser l'équivalent de T-SQL?? Semble beaucoup plus facile et moins confus pour moi:
Quand je lis cela, je crois que c'est tout à fait clair que les deux tables sont impliqués, et de la manière dont ils sont connectés (
Table1.Table2ID
--(références)-->Table2.ID
)Si vous voulez rester dans la SSMS concepteur de monde: vous pouvez également créer un schéma de base de données de vos tables impliquées, et puis il suffit de drag&drop votre
Table2ID
colonne deTable1
àTable2
et déposez-la sur leID
colonne - cela serait graphiquement dire SSMS ce que vous voulez faire, et vous avez juste besoin d'examiner de votre choix et cliquez sur OK dans la boîte de dialogue qui apparaît.Je crois que votre compréhension est erronée. Table2 est la table dont la clé primaire référencée. Par conséquent, il est répertorié sous Clé Primaire. Table1 est la table qui sera la clé étrangère (la référence à la clé primaire d'une autre table); par conséquent, il est répertorié sous "Clé Étrangère de la Table".
Autant que pourquoi les deux tables sont enregistrées, même si la clé étrangère est répertorié par la suite comme appartenant à la Table1: je crois que c'est parce que la clé étrangère contraint les deux tables. Ils ont tous deux pour "savoir" à propos de la contrainte, de sorte qu'ils ont tous deux besoin d'être sauvé.
{ }
) sur la barre d'outils editeur de bien format et la syntaxe en surbrillance!