0

在 SQL Server 2005 中有没有办法解决这个问题?

(这让我很烦恼,每次遇到它时,我都会陷入困境。但这是我第一次不得不处理并进入 Stack Overflow。请保存我所拥有的一点点理智!)

维度表:
id INT IDENTITY(1,1)

FactTable:
source_id INT NOT NULL,
target_id INT NOT NULL

我创建了一个从“Fact.source_id”到“Dimension.id”的外键,并设置了级联删除和级联更新。

当我尝试对“Fact.target_id”执行相同操作时,我收到一条错误消息,告诉“哦,不,不,不”,因为级联有多个路径可供遵循。

这里没有涉及其他外键,只有我要创建的两个。我可以在没有级联的情况下创建第二个外键,但这对我来说似乎很糟糕。这是一组将手动维护的表(它们很少会被触及,所以客户不会为 gui 付费。)这样的级联删除/更新将非常有用,但仅如果它在两个字段上。(我很喜欢一致性)

****呜咽****

4

2 回答 2

1

是的,使用 INSTEAD OF 触发器。它会拦截 DELETE 命令,您可以相应地指导逻辑。

于 2009-04-21T18:12:45.107 回答
0

您只能从一个关系中级联删除。建议您在触发器中进行设置。

于 2009-04-21T18:10:54.657 回答