Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да намеря всички таблици, които имат външни ключове, които препращат към конкретна table.column И имат стойности за тези външни ключове?

опитайте тази заявка:

Трябва да използвате sysreferences и sysobjects таблици, за да получите информацията

Заявката по-долу дава всички чужди ключове, както и родителски таблици с имена на колони от базата данни

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да игнорирате грешка при дублиран ключ в T-SQL (SQL сървър)

  2. SQL Server 2005 Каскадно изтриване

  3. Как да изберете определен брой символи отляво или отдясно на низ в SQL Server

  4. Добавете колона със стойност по подразбиране към съществуваща таблица в SQL Server

  5. Поправете „Грешка при аритметично препълване при преобразуване на израз в тип данни int“ в SQL Server