SQL Server 2008中单个列上的多个外键约束

SQL Server 2008中单个列上的多个外键约束,sql,tsql,sql-server-2008,Sql,Tsql,Sql Server 2008,我有两张桌子。现在TableA有2列:ID和Name,TableB有3列:ID、Name和TableAID。现在有一个来自TableA.ID=TableB.TableAID的外键约束。我需要能够允许TableB.TableAID使用TableA.ID或TableB.ID中的值,因此在单个列上有多个外键约束,我需要它允许或。谢谢 这是一个糟糕设计的明显标志。你不应该这样做,如果你这样做了,那么你需要重新思考你的设计 不能将字段与两个不同的FK关联 是的,我只能向这些表添加约束,我不能更改表的设计或

我有两张桌子。现在TableA有2列:ID和Name,TableB有3列:ID、Name和TableAID。现在有一个来自TableA.ID=TableB.TableAID的外键约束。我需要能够允许TableB.TableAID使用TableA.ID或TableB.ID中的值,因此在单个列上有多个外键约束,我需要它允许或。谢谢

这是一个糟糕设计的明显标志。你不应该这样做,如果你这样做了,那么你需要重新思考你的设计


不能将字段与两个不同的FK关联

是的,我只能向这些表添加约束,我不能更改表的设计或删除任何约束:(能否在TableB.TableAID中使用空值作为您应该使用TableB.ID的指示?这意味着您要插入的TableB.ID将已经存在于记录中,但情况可能并非如此。。。