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.