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.