You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SQL Server查询与Application表关联的所有表?

这问题我太熟了!不用依赖数据库图,直接查询数据库自带的系统元数据表就能找出所有和Application表关联的表。不同数据库系统的系统表结构不一样,给你整理几个主流数据库的可行方案:

MySQL/MariaDB

直接查information_schema.KEY_COLUMN_USAGE视图,这里面记录了所有外键关联信息:

SELECT DISTINCT TABLE_NAME
FROM information_schema.KEY_COLUMN_USAGE
WHERE REFERENCED_TABLE_NAME = 'Application'
  AND REFERENCED_TABLE_SCHEMA = '你的数据库名'; -- 替换成实际库名

DISTINCT是为了避免同一个表多次关联Application时重复出现,指定REFERENCED_TABLE_SCHEMA能精准过滤,避免跨库干扰。

SQL Server

通过sys.foreign_keys和sys.tables关联查询:

SELECT DISTINCT t.name AS 关联表名
FROM sys.foreign_keys fk
JOIN sys.tables t ON fk.parent_object_id = t.object_id
JOIN sys.tables ref_t ON fk.referenced_object_id = ref_t.object_id
WHERE ref_t.name = 'Application';

核心是通过外键对象关联到父表(也就是关联Application的表),再过滤被引用表为Application的记录。

PostgreSQL

结合information_schema.table_constraints和information_schema.constraint_column_usage查询:

SELECT DISTINCT tc.table_name
FROM information_schema.table_constraints tc
JOIN information_schema.constraint_column_usage ccu 
  ON tc.constraint_name = ccu.constraint_name
WHERE tc.constraint_type = 'FOREIGN KEY'
  AND ccu.table_name = 'Application';

先筛选出外键约束,再关联到被引用表是Application的记录,最后取出对应的关联表名。

如果你的数据库是其他类型(比如Oracle),可以告诉我,我再给你补充对应的语句~

内容的提问来源于stack exchange,提问作者TechManiac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 10:05:48