我有一个表,其主键“ID”字段在许多其他表中用作外键。
我如何才能意识到此表中的记录(例如第一个记录“ID = 1”)在其他表中使用?
我不想从所有其他表中选择来理解它因为表格是如此之多以及关系。我搜索了一个解决方案,没有可行的解决方案,或者我弄错了。请帮忙。
答案 0 :(得分:8)
对于Generic方法使用此方法,您将获得具有外键的所有表,然后您可以循环检查列表中的所有表。这样你可以添加外键,不需要改变代码......
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]')
答案 1 :(得分:2)
您需要加入所有其他表格。像这样:
select *
from Parents
where
exists(select * from Children1 where ...)
or exists(select * from Children2 where ...)
or exists(select * from Children3 where ...)
如果您的所有FK列都已编入索引,这将非常有效。你会得到很好的合并连接。