I databastermer, en främmande nyckel är en kolumn som är länkad till en annan tabells primära nyckelfält i en relation mellan två tabeller.
En främmande nyckel är en typ av begränsning, så om du vill skapa en främmande nyckel i SQL Server måste du skapa en främmande nyckel begränsning.
Den här artikeln visar hur man skapar en främmande nyckel-begränsning i SQL Server med hjälp av Transact-SQL.
Exempel
Det enklaste sättet att visa detta är med ett exempel. I det här exemplet använder vi T-SQL för att skapa en främmande nyckel-begränsning med hjälp av ALTER TABLE
uttalande:
USE Music; ALTER TABLE Albums ADD CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId) REFERENCES dbo.Artists (ArtistId) ON DELETE CASCADE ON UPDATE CASCADE ; GO
Detta skapar en relation mellan två tabeller (Albums
tabellen och Artists)
tabell). Vi gör detta genom att skapa en främmande nyckel-begränsning på Albums
tabell. Vi anger att Albums.ArtistId
kolumnen är en främmande nyckel till Artists.ArtistId
kolumn.
Detta förutsätter uppenbarligen att de två tabellerna existerar. Om de inte gjorde det skulle vi få ett felmeddelande.
Vi använder också GO
som faktiskt inte är en del av T-SQL. Det känns igen av olika verktyg för att signalera slutet på en grupp T-SQL-satser.
Kontrollera resultatet
Du kan kontrollera resultatet genom att köra följande skript:
USE Music; SELECT name, type_desc, delete_referential_action_desc, update_referential_action_desc FROM sys.foreign_keys; GO
Detta listar de främmande nycklarna i Music
databas. Ändra namnet på databasen så att det passar.
Om din databas har för många främmande nycklar kan du alltid begränsa den med en WHERE
klausul till den specifika främmande nyckel som du är intresserad av. Du kan också använda jokertecken (*
) om du vill att alla kolumner ska returneras.