none
Query per relazioni data una tabella RRS feed

  • Domanda

  • Ciao a tutti

    c'è modo via query di sapere le relazioni tra le tabelle di un database SqlServer?

    Nello specifico mi servirebbe sapere dato il nome di una tabella quali sono le relazioni 1 a 1, 1 a N con le tabelle a lei relazionate, mostrando anche la colonna FK da una parte a PK dall'altra.

    Con questa query riesco forse a capire le 1 a N, ma non le 1 a 1.

    DECLARE @tablename VARCHAR(MAX)
    SET @tablename = 'Subjects'
    SELECT OBJECT_NAME(rkeyid) Parent_Table,
           OBJECT_NAME(fkeyid) Child_Table,
           OBJECT_NAME(constid) FKey_Name,
           c1.name FKey_Col,
           c2.name Ref_KeyCol, *
    FROM   sys.sysforeignkeys s
           INNER JOIN sys.syscolumns c1
                ON  (s.fkeyid = c1.id AND s.fkey = c1.colid)
           INNER JOIN syscolumns c2
                ON  (s.rkeyid = c2.id AND s.rkey = c2.colid)
    WHERE  OBJECT_NAME(rkeyid) = @tablename
    ORDER BY
           Parent_Table,
           Child_Table

    Riuscite ad aiutarmi?

    GRAZIE



    • Modificato Pengo11 giovedì 16 maggio 2019 15:19
    giovedì 16 maggio 2019 15:04

Risposte

Tutte le risposte