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.