En termes de base de données, une clé étrangère est une colonne liée au champ de clé primaire d'une autre table dans une relation entre deux tables.
Une clé étrangère est un type de contrainte, et donc si vous voulez créer une clé étrangère dans SQL Server, vous devrez créer une contrainte de clé étrangère.
Cet article montre comment créer une contrainte de clé étrangère dans SQL Server, à l'aide de Transact-SQL.
Exemple
La façon la plus simple de le démontrer est avec un exemple. Dans cet exemple, nous utilisons T-SQL pour créer une contrainte de clé étrangère à l'aide de ALTER TABLE
déclaration :
USE Music; ALTER TABLE Albums ADD CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId) REFERENCES dbo.Artists (ArtistId) ON DELETE CASCADE ON UPDATE CASCADE ; GO
Cela crée une relation entre deux tables (les Albums
table et les Artists)
table). Pour ce faire, nous créons une contrainte de clé étrangère sur les Albums
table. Nous spécifions que le Albums.ArtistId
la colonne est une clé étrangère vers Artists.ArtistId
colonne.
Cela suppose évidemment que les deux tables existent. S'ils ne le faisaient pas, nous aurions une erreur.
Nous utilisons également GO
qui ne fait pas réellement partie de T-SQL. Il est reconnu par divers utilitaires pour signaler la fin d'un lot d'instructions T-SQL.
Vérifier le résultat
Vous pouvez vérifier le résultat en exécutant le script suivant :
USE Music; SELECT name, type_desc, delete_referential_action_desc, update_referential_action_desc FROM sys.foreign_keys; GO
Cela répertorie les clés étrangères dans le Music
base de données. Modifiez le nom de la base de données en conséquence.
Si votre base de données a trop de clés étrangères, vous pouvez toujours la réduire avec un WHERE
clause à la clé étrangère spécifique qui vous intéresse. Vous pouvez également utiliser le caractère générique (*
) si vous avez besoin que toutes les colonnes soient renvoyées.