SQL Server 2005中是否有解决方法?
(它让我感到烦恼,每次遇到它我都会陷入困境。但这是我第一次不得不处理并且一直在使用Stack Overflow。请保存我所拥有的一点点理智!)
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的第二个外键,但这对我来说似乎很便利。这是一组将要手工维护的表格(很少会被触及,因此客户端不会支付gui来执行此操作。)这样的级联删除/更新将非常有用,但仅限于如果它'在两个领域。 (为了保持一致,我是个傻瓜)
**** ****呜咽
答案 0 :(得分:1)
是的,使用INSTEAD OF触发器。它会拦截DELETE命令,你可以相应地指导逻辑。
答案 1 :(得分:0)
您只能从一个关系中级联删除。建议你在触发器中设置它。