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 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 un utente è proprietario o a cui l'utente ha concesso alcune 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