Partilhar via


sys.foreign_key_columns (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Armazém no Microsoft FabricBase de dados SQL no Microsoft Fabric

Contém uma linha para cada coluna, ou conjunto de colunas, que compõem uma chave estrangeira.

Nome da coluna Tipo de dados Description
constraint_object_id int ID da restrição FOREIGN KEY.
constraint_column_id int ID da coluna, ou conjunto de colunas, que compõem a CHAVE ESTRANGEIRA (1..n onde n é o número de colunas).
parent_object_id int ID do pai da restrição, que é o objeto de referência.
parent_column_id int ID da coluna pai, que é a coluna de referência.
referenced_object_id int ID do objeto referenciado, que tem a chave candidata.
referenced_column_id int ID da coluna referenciada (coluna de chave candidata).

Permissions

A visibilidade dos metadados nas visualizações de catálogo é limitada aos itens de segurança que um utilizador possui ou nos quais o utilizador recebeu alguma permissão. Para obter mais informações, consulte Configuração de visibilidade de metadados.

Exemplo de consulta

A consulta Transact-SQL a seguir recupera todas as chaves estrangeiras no banco de dados, incluindo suas tabelas e colunas 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;

Consulte também