多个级联路径问题

时间:2014-03-16 08:20:15

标签: sql-server-2008 database-design

我在sql server 2008中设计了一个图表。 正如你在照片中看到的那样:

enter image description here

现在在Value表中,我为FeatureProductDetail设置了级联删除,但我看到以下错误:

  

'特征'表已成功保存' ProductDetail'表已保存   成功'价值'表    - 无法创建关系' ValueFeature'。引入FOREIGN KEY约束' ValueFeature'在桌子上'价值'可能导致周期或   多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO   ACTION,或修改其他FOREIGN KEY约束。无法创建   约束。查看以前的错误。

我的设计有什么问题?

1 个答案:

答案 0 :(得分:2)

我想我几年前在SQL Server 2005中遇到了同样的问题。我认为你的设计没有错误。如果删除Feature,则希望删除所有Value条记录。没有错。如果您没有其他级联,则自动删除不会进一步传播。但是,似乎 SQL Server不够聪明,无法理解,并且不允许您拥有这样的关系,只是因为您有外键形成一个圆圈。我认为如果你删除一个外键(仅用于测试)并打破圆圈(例如删除ProductDetailProduct之间的FK),就没有错误。

同时检查this stackoverflow question ..

希望我帮忙!