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.