检查多个表中的特定ID或值

假设我们有一个带有主键列ID的表A.现在,此表与此列中的n个其他表处于外键关系中。 我需要创建一个存储过程,它将ID作为参数并返回1或0,具体取决于任何其他表中存在的ID值。 因此,对于ex,如果ID = 3并且n个表中的任何一个包含3,则SP应该返回1,否则为0。 实现这一目标的最佳方法是什么? 一种方法是运行n个不同的选择查询并处理每个结果。但看起来很笨拙。 谢谢。     
已邀请:
IF EXISTS
(
    SELECT * 
    FROM 
        A
        INNER JOIN B ON A.Id = B.Id
        INNER JOIN C ON A.Id = C.Id
        INNER JOIN D ON A.Id = D.Id
)
BEGIN
    SELECT 1
END
ELSE
BEGIN
    SELECT 0
END 
一种与约翰相似的方法。我确信可以使用系统表,使用那里找到的关系来做到这一点,但这需要付出很多努力。这些表会改变到足以让它变得有价值吗?     
你可以做这样的事情
select case when (isnull (b.id, 0)) = 0 then case when isnull (c.id, 0) = 0 then 0 else 1 end else 1 end
from a  
left outer join b on a.id = b.id 
left outer join c on a.id = c.id 
只需添加一个连接等     

要回复问题请先登录注册