are*_*res 9 sql sql-server sql-server-2008
我有一个表,其主键"ID"字段在许多其他表中用作外键.
如何才能意识到该表中的记录(例如第一个记录"ID = 1")在其他表中使用?
我不想从所有其他表中选择来理解它因为表是如此之多和关系.我搜索了一个解决方案,没有可行的解决方案,或者我弄错了.请帮忙.
对于通用方式使用此方法,您将获得具有外键的所有表,然后您可以循环检查列表中的所有表.这样你可以添加外键,不需要改变代码......
SELECT
sys.sysobjects.name,
sys.foreign_keys.*
FROM
sys.foreign_keys
inner join sys.sysobjects on
sys.foreign_keys.parent_object_id = sys.sysobjects.id
WHERE
referenced_object_id = OBJECT_ID(N'[dbo].[TableName]')
Run Code Online (Sandbox Code Playgroud)
您需要加入所有其他表。像这样:
select *
from Parents
where
exists(select * from Children1 where ...)
or exists(select * from Children2 where ...)
or exists(select * from Children3 where ...)
Run Code Online (Sandbox Code Playgroud)
如果所有 FK 列都建立了索引,这将非常高效。你会得到很好的合并连接。
| 归档时间: |
|
| 查看次数: |
11137 次 |
| 最近记录: |