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;