sql >> Databáze >  >> RDS >> Sqlserver

Jak najdu všechny tabulky, které mají cizí klíče, které odkazují na konkrétní table.column A mají hodnoty pro tyto cizí klíče?

zkuste tento dotaz:

Musíte použít sysreferences a sysobjects tabulky k získání informací

Dotaz níže poskytuje všechny cizí klíče a také nadřazené tabulky s názvy sloupců z databáze

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. Načítání externích souborů do databáze Oracle

  2. Oracle SQL – Jak získat počty založené na datech do více sloupců v ORACLE

  3. Jak rozdělit jednu buňku do více sloupců na serveru SQL 2008R2?

  4. node-mysql:Dotazy na více příkazů, ER_PARSE_ERROR