Condividi tramite


sys.foreign_key_columns (Transact-SQL)

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Analytics Platform System (PDW) Warehouse nel database SQL di Microsoft Fabric in Microsoft Fabric

Contiene una riga per ogni colonna o set di colonne che compongono una chiave esterna.

Nome colonna Tipo di dati Descrizione
constraint_object_id int ID del vincolo FOREIGN KEY.
constraint_column_id int ID della colonna o del set di colonne che comprendono FOREIGN KEY (1..n dove n è il numero di colonne).
parent_object_id int ID dell'oggetto padre del vincolo, ovvero l'oggetto di riferimento.
parent_column_id int ID della colonna padre, ovvero la colonna di riferimento.
referenced_object_id int ID dell'oggetto a cui si fa riferimento, che include la chiave candidata.
referenced_column_id int ID della colonna a cui si fa riferimento, ovvero la colonna chiave candidata.

Autorizzazioni

La visibilità dei metadati nelle viste del catalogo è limitata alle entità a protezione diretta di cui l'utente è proprietario o per le quali dispone di autorizzazioni. Per altre informazioni, vedere Metadata Visibility Configuration.

Query di esempio

La query Transact-SQL seguente recupera tutte le chiavi esterne nel database, incluse le tabelle e le colonne correlate.

SELECT fk.name AS ForeignKeyName
    , t_parent.name AS ParentTableName
    , c_parent.name AS ParentColumnName
    , t_child.name AS ReferencedTableName
    , c_child.name AS ReferencedColumnName
FROM sys.foreign_keys fk 
INNER JOIN sys.foreign_key_columns fkc
    ON fkc.constraint_object_id = fk.object_id
INNER JOIN sys.tables t_parent
    ON t_parent.object_id = fk.parent_object_id
INNER JOIN sys.columns c_parent
    ON fkc.parent_column_id = c_parent.column_id  
    AND c_parent.object_id = t_parent.object_id 
INNER JOIN sys.tables t_child
    ON t_child.object_id = fk.referenced_object_id
INNER JOIN sys.columns c_child
    ON c_child.object_id = t_child.object_id
    AND fkc.referenced_column_id = c_child.column_id
ORDER BY t_parent.name, c_parent.name;

Vedi anche