Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Conheça as relações entre todas as tabelas de banco de dados no SQL Server


Às vezes, uma representação textual também pode ajudar; com esta consulta nas visualizações do catálogo do sistema, você pode obter uma lista de todos os relacionamentos FK e como as duas tabelas vinculam (e em quais colunas elas operam).
SELECT
    fk.name 'FK Name',
    tp.name 'Parent table',
    cp.name, cp.column_id,
    tr.name 'Refrenced table',
    cr.name, cr.column_id
FROM 
    sys.foreign_keys fk
INNER JOIN 
    sys.tables tp ON fk.parent_object_id = tp.object_id
INNER JOIN 
    sys.tables tr ON fk.referenced_object_id = tr.object_id
INNER JOIN 
    sys.foreign_key_columns fkc ON fkc.constraint_object_id = fk.object_id
INNER JOIN 
    sys.columns cp ON fkc.parent_column_id = cp.column_id AND fkc.parent_object_id = cp.object_id
INNER JOIN 
    sys.columns cr ON fkc.referenced_column_id = cr.column_id AND fkc.referenced_object_id = cr.object_id
ORDER BY
    tp.name, cp.column_id

Despeje isso no Excel e você pode fatiar e cortar - com base na tabela pai, na tabela referenciada ou em qualquer outra coisa.

Acho os guias visuais úteis - mas às vezes, a documentação textual é tão boa (ou até melhor) - apenas meus 2 centavos .....