In databasetermen, een vreemde sleutel is een kolom die is gekoppeld aan het primaire sleutelveld van een andere tabel in een relatie tussen twee tabellen.
Een externe sleutel is een type beperking, en als u dus een externe sleutel in SQL Server wilt maken, moet u een externe sleutelbeperking maken.
Dit artikel laat zien hoe u een externe-sleutelbeperking in SQL Server maakt met Transact-SQL.
Voorbeeld
De eenvoudigste manier om dit aan te tonen is met een voorbeeld. In dit voorbeeld gebruiken we T-SQL om een externe sleutelbeperking te maken met behulp van de ALTER TABLE
verklaring:
USE Music; ALTER TABLE Albums ADD CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId) REFERENCES dbo.Artists (ArtistId) ON DELETE CASCADE ON UPDATE CASCADE ; GO
Dit creëert een relatie tussen twee tabellen (de Albums
tabel en de Artists)
tafel). We doen dit door een externe sleutelbeperking te maken voor de Albums
tafel. We specificeren dat de Albums.ArtistId
kolom is een externe sleutel naar de Artists.ArtistId
kolom.
Dit veronderstelt uiteraard dat de twee tabellen bestaan. Als ze dat niet deden, zouden we een foutmelding krijgen.
We gebruiken ook GO
die eigenlijk geen deel uitmaakt van T-SQL. Het wordt door verschillende hulpprogramma's herkend om het einde van een reeks T-SQL-instructies aan te geven.
Controleer het resultaat
U kunt het resultaat controleren door het volgende script uit te voeren:
USE Music; SELECT name, type_desc, delete_referential_action_desc, update_referential_action_desc FROM sys.foreign_keys; GO
Dit geeft een overzicht van de externe sleutels in de Music
databank. Pas de naam van de database aan.
Als uw database te veel externe sleutels heeft, kunt u deze altijd verfijnen met een WHERE
clausule toe aan de specifieke externe sleutel waarin u geïnteresseerd bent. U kunt ook het jokerteken gebruiken (*
) als u alle kolommen wilt retourneren.