这是场景。 - 父表:TEAMMEMBERS,具有主键RecID - 儿童表:TEAMMEMBERTASKS
我在TEAMMEMBERTASKS表中有两列,ReportedBy和AssignedTo。 这两列都使用RecID来存储哪个团队成员报告了任务以及该任务分配给哪个团队成员。两列的RecID可能相同,但情况并非总是如此。
我需要为两个子列添加一个FK来检查与父项的关系,并且我想在两个外键上添加ON UPDATE CASCADE。
每当我尝试这样做时,我的第二个外键会引发一个“循环”或“多个级联路径”。错误。
这是我的代码:
ALTER TABLE [dbo].[TEAMMEMBERTASKS] WITH CHECK ADD CONSTRAINT
[FK_AssignedTo_TeamMemberRecID] FOREIGN KEY([AssignedTo])
REFERENCES [dbo].[TEAMMEMBERS] ([RecID])
GO
ALTER TABLE [dbo].[TEAMMEMBERTASKS] CHECK CONSTRAINT
[FK_AssignedTo_TeamMemberRecID]
GO
ALTER TABLE [dbo].[TEAMMEMBERTASKS] WITH CHECK ADD CONSTRAINT
[FK_ReportedBy_TeamMemberRecID] FOREIGN KEY([ReportedBy])
REFERENCES [dbo].[TEAMMEMBERS] ([RecID])
ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[TEAMMEMBERTASKS] CHECK CONSTRAINT
[FK_ReportedBy_TeamMemberRecID]
GO
使用当前代码,这会导致在两个子列中更新RecID还是会导致更新命令被限制?
我应该继续编写一个处理此问题的触发器吗?