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;