2009-04-21 110 views
0

在SQL Server 2005中有没有办法解决这个问题? (这让我感到困惑,每次遇到它时,我都会陷入困境,但这是我第一次不得不面对并且一直处于堆栈溢出状态,请保存我所提供的一点理智! )SQL Server 2005 - 级联删除的外键

DimensionTable:
ID INT IDENTITY(1,1)

FactTable:
SOURCE_ID INT NOT NULL,
target_id INT NOT NULL

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

当我试图做同样的“Fact.target_id”我得到了一个错误,告诉“哦,不,不,不”,因为对于级联遵循多条路径。

这里有没有涉及其他的外键,只是这两个我想创建。如果没有Cascade,我可以创建第二个外键,但对我来说这似乎很流行。这是一套手工维护的表格(很少会被触摸,所以客户不会付钱去做这件事)。这样一个级联删除/更新将非常有用,但仅限于如果它在两个领域。 (我的一致性吸盘)

**** ****抽泣

回答

1

是的,而是使用一个触发器。它会拦截DELETE命令,并可以相应地指示逻辑。

0

只能级联从一个关系中删除。建议你在触发器intead中设置它。