In termini di database, una chiave esterna è una colonna collegata al campo della chiave primaria di un'altra tabella in una relazione tra due tabelle.
Una chiave esterna è un tipo di vincolo, quindi se desideri creare una chiave esterna in SQL Server, dovrai creare un vincolo di chiave esterna.
Questo articolo illustra come creare un vincolo di chiave esterna in SQL Server, usando Transact-SQL.
Esempio
Il modo più semplice per dimostrarlo è con un esempio. In questo esempio, utilizziamo T-SQL per creare un vincolo di chiave esterna utilizzando ALTER TABLE dichiarazione:
USE Music;
ALTER TABLE Albums
ADD CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId)
REFERENCES dbo.Artists (ArtistId)
ON DELETE CASCADE
ON UPDATE CASCADE
;
GO
Questo crea una relazione tra due tabelle (gli Albums tabella e il Artists) tavolo). A tale scopo, creiamo un vincolo di chiave esterna sugli Albums tavolo. Specifichiamo che il Albums.ArtistId la colonna è una chiave esterna per Artists.ArtistId colonna.
Questo ovviamente presuppone che le due tabelle esistano. In caso contrario, riceveremmo un errore.
Usiamo anche GO che in realtà non fa parte di T-SQL. È riconosciuto da varie utilità per segnalare la fine di un batch di istruzioni T-SQL.
Verifica il risultato
Puoi controllare il risultato eseguendo il seguente script:
USE Music;
SELECT
name,
type_desc,
delete_referential_action_desc,
update_referential_action_desc
FROM sys.foreign_keys;
GO
Questo elenca le chiavi esterne in Music Banca dati. Cambia il nome del database per adattarlo.
Se il tuo database ha troppe chiavi esterne, puoi sempre restringerlo con un WHERE clausola alla chiave esterna specifica che ti interessa. Puoi anche utilizzare il carattere jolly (* ) se è necessario restituire tutte le colonne.