SQL Server: Listar as chaves do banco de dados
Nesse script vou mostrar como exibir as constraints (chaves estrangeiras) que já estão criadas no banco de dados, nele vou exibir o nome das tabelas ligadas, os nomes das tabelas e o nome da chave.
SELECT
FK.TABLE_NAME,
COLUMNUSAGE.COLUMN_NAME,
PK.TABLE_NAME,
PT.COLUMN_NAME,
CONSTRAINTS.CONSTRAINT_NAME
FROM
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS CONSTRAINTS
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK
ON CONSTRAINTS.CONSTRAINT_NAME = FK.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK
ON CONSTRAINTS.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE COLUMNUSAGE
ON CONSTRAINTS.CONSTRAINT_NAME = COLUMNUSAGE.CONSTRAINT_NAME
INNER JOIN (
SELECT
i1.TABLE_NAME,
i2.COLUMN_NAME
FROM
INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2
ON i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME
WHERE
i1.CONSTRAINT_TYPE = 'PRIMARY KEY'
) PT
ON PT.TABLE_NAME = PK.TABLE_NAME
Caso você esteja procurando por uma chave em específico você pode utilizar o where com o nome da chave por exemplo:
WHERE CONSTRAINTS.CONSTRAINT_NAME LIKE '%FK_MINHACHAVE%'
ou então caso esteja procurando todas as chaves relacionadas com uma coluna:
WHERE COLUMNUSAGE.COLUMN_NAME LIKE '%NOMEDACOLUNA%'