sys.foreign_key_columns (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Warehouse dans microsoft Fabric SQL Database dans Microsoft Fabric SQL Database dans Microsoft Fabric
Contient une ligne pour chaque colonne, ou ensemble de colonnes, comportant une clé étrangère.
Nom de la colonne | Type de données | Description |
---|---|---|
constraint_object_id | int | ID de la contrainte FOREIGN KEY. |
constraint_column_id | int | ID de la colonne, ou du jeu de colonnes, qui comporte la contrainte FOREIGN KEY (1..n où n est le nombre de colonnes). |
parent_object_id | int | ID du parent de la contrainte, qui est l'objet référençant. |
parent_column_id | int | ID de la colonne parente, qui est la colonne référençante. |
referenced_object_id | int | ID de l'objet référencé, qui contient la clé candidate. |
referenced_column_id | int | ID de la colonne référencée (colonne clé candidate). |
autorisations
La visibilité des métadonnées dans les affichages catalogue est limitée aux éléments sécurisables qu'un utilisateur détient ou pour lesquels des autorisations lui ont été accordées. Pour plus d'informations, consultez Metadata Visibility Configuration.
Exemple de requête
La requête Transact-SQL suivante récupère toutes les clés étrangères dans la base de données, y compris leurs tables et colonnes associées.
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;