sql >> Database >  >> RDS >> Sqlserver

Hoe vind ik alle tabellen met externe sleutels die verwijzen naar bepaalde table.column EN waarden hebben voor die externe sleutels?

probeer deze zoekopdracht:

Je moet sysreferences . gebruiken en sysobjects tabellen om de informatie te krijgen

De onderstaande query geeft alle buitenlandse sleutels en bovenliggende tabellen met kolomnamen uit de database

select cast(f.name as varchar(255)) as foreign_key_name
, cast(c.name as varchar(255)) as foreign_table
, cast(fc.name as varchar(255)) as foreign_column
, cast(p.name as varchar(255)) as parent_table
, cast(rc.name as varchar(255)) as parent_column
from  sysobjects f
inner join sysobjects c on f.parent_obj = c.id
inner join sysreferences r on f.id = r.constid
inner join sysobjects p on r.rkeyid = p.id
inner join syscolumns rc on r.rkeyid = rc.id and r.rkey1 = rc.colid
inner join syscolumns fc on r.fkeyid = fc.id and r.fkey1 = fc.colid
where f.type = 'F'


  1. Hoe u de meest relevante vermeldingen uit de database kunt krijgen en bestellen met meerdere trefwoorden Laravel 5

  2. Wijzig de weergave-indeling van het datum- en tijdveld in MySQL PHP

  3. Hoe te SELECTEREN op MAX (datum)?

  4. Hoe te SELECTEREN * maar zonder Kolomnamen moeten uniek zijn in elke weergave