Dicas sobre desenvolvimento de software, gestão e tributações

Rede Social

10 de novembro de 2021

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%'

Ler