W kategoriach bazy danych klucz obcy to kolumna połączona z polem klucza podstawowego innej tabeli w relacji między dwiema tabelami.
Klucz obcy jest rodzajem ograniczenia, więc jeśli chcesz utworzyć klucz obcy w SQL Server, musisz utworzyć ograniczenie klucza obcego.
W tym artykule pokazano, jak utworzyć ograniczenie klucza obcego w SQL Server przy użyciu języka Transact-SQL.
Przykład
Najłatwiej to zademonstrować na przykładzie. W tym przykładzie używamy T-SQL do tworzenia ograniczenia klucza obcego za pomocą ALTER TABLE
oświadczenie:
USE Music; ALTER TABLE Albums ADD CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId) REFERENCES dbo.Artists (ArtistId) ON DELETE CASCADE ON UPDATE CASCADE ; GO
Tworzy to relację między dwiema tabelami (Albums
tabeli i Artists)
stół). Robimy to, tworząc ograniczenie klucza obcego w Albums
stół. Określamy, że Albums.ArtistId
kolumna jest kluczem obcym do Artists.ArtistId
kolumna.
To oczywiście zakłada, że istnieją dwie tabele. Jeśli nie, otrzymalibyśmy błąd.
Używamy również GO
który w rzeczywistości nie jest częścią T-SQL. Jest rozpoznawany przez różne narzędzia do sygnalizowania końca partii instrukcji T-SQL.
Sprawdź wynik
Możesz sprawdzić wynik, uruchamiając następujący skrypt:
USE Music; SELECT name, type_desc, delete_referential_action_desc, update_referential_action_desc FROM sys.foreign_keys; GO
To zawiera listę kluczy obcych w Music
Baza danych. Zmień nazwę bazy danych, aby pasowała.
Jeśli Twoja baza danych ma zbyt wiele kluczy obcych, zawsze możesz ją zawęzić za pomocą WHERE
klauzulę do konkretnego klucza obcego, który Cię interesuje. Możesz również użyć znaku wieloznacznego (*
), jeśli chcesz, aby wszystkie kolumny zostały zwrócone.