sys.foreign_key_columns (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Instancia administrada Azure Synapse Analytics Analytics Platform System (PDW) Warehouse en Microsoft Fabric
Contiene una fila para cada columna o conjunto de columnas que componen una clave externa.
Nombre de la columna | Tipo de datos | Descripción |
---|---|---|
constraint_object_id | int | Id. de la restricción FOREIGN KEY. |
constraint_column_id | int | Identificador de la columna, o del conjunto de columnas, que componen FOREIGN KEY (1..n, donde n es el número de columnas). |
parent_object_id | int | Id. del elemento primario de la restricción, que es el objeto que hace la referencia. |
parent_column_id | int | Id. de la columna primaria, que es la columna que hace la referencia. |
referenced_object_id | int | Id. del objeto al que se hace referencia, que tiene la clave candidata. |
referenced_column_id | int | Id. de la columna a la que se hace referencia (columna de clave candidata). |
Permisos
La visibilidad de los metadatos en las vistas de catálogo se limita a los elementos protegibles y que son propiedad de un usuario o sobre los que el usuario ha recibido algún permiso. Para obtener más información, consulte Metadata Visibility Configuration.
Ejemplo de consulta
La siguiente consulta de Transact-SQL recupera todas las claves externas de la base de datos, incluidas sus tablas y columnas relacionadas.
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;