sql >> Database teknologi >  >> RDS >> Sqlserver

Kend relationer mellem alle tabellerne i databasen i SQL Server

Nogle gange kan en tekstlig repræsentation også hjælpe; med denne forespørgsel på systemkatalogvisningerne kan du få en liste over alle FK-relationer og hvordan linket to tabeller (og hvilke kolonner de opererer på).

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

Dump dette i Excel, og du kan skære og skære - baseret på den overordnede tabel, den refererede tabel eller noget andet.

Jeg finder visuelle guider nyttige - men nogle gange er tekstdokumentation lige så god (eller endnu bedre) - bare mine 2 cents.....



  1. Tilslut Java til en MySQL-database

  2. Hvordan finder man den tredje eller nᵗʰ maksimale løn fra løntabellen?

  3. Vinduesfunktioner og mere lokal aggregering

  4. Ydelsesmyter:Overdimensionerede strengsøjler