Z hlediska databáze cizí klíč je sloupec, který je propojen s polem primárního klíče jiné tabulky ve vztahu mezi dvěma tabulkami.
Cizí klíč je typ omezení, a pokud tedy chcete vytvořit cizí klíč na serveru SQL Server, budete muset vytvořit omezení cizího klíče.
Tento článek ukazuje, jak vytvořit omezení cizího klíče v SQL Server pomocí Transact-SQL.
Příklad
Nejjednodušší způsob, jak to demonstrovat, je na příkladu. V tomto příkladu používáme T-SQL k vytvoření omezení cizího klíče pomocí ALTER TABLE
prohlášení:
USE Music; ALTER TABLE Albums ADD CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId) REFERENCES dbo.Artists (ArtistId) ON DELETE CASCADE ON UPDATE CASCADE ; GO
Tím se vytvoří vztah mezi dvěma tabulkami (Albums
tabulka a Artists)
stůl). Toho dosáhneme vytvořením omezení cizího klíče pro Albums
stůl. Uvádíme, že Albums.ArtistId
sloupec je cizí klíč k Artists.ArtistId
sloupec.
To samozřejmě předpokládá, že tyto dvě tabulky existují. Pokud by to neudělali, dostali bychom chybu.
Používáme také GO
který ve skutečnosti není součástí T-SQL. Je rozpoznán různými nástroji, aby signalizoval konec dávky příkazů T-SQL.
Zkontrolujte výsledek
Výsledek můžete zkontrolovat spuštěním následujícího skriptu:
USE Music; SELECT name, type_desc, delete_referential_action_desc, update_referential_action_desc FROM sys.foreign_keys; GO
Zde jsou uvedeny cizí klíče v Music
databáze. Změňte název databáze, aby vyhovoval.
Pokud má vaše databáze příliš mnoho cizích klíčů, můžete ji vždy zúžit pomocí WHERE
klauzuli na konkrétní cizí klíč, který vás zajímá. Můžete také použít zástupný znak (*
), pokud potřebujete vrátit všechny sloupce.