我在sql server 2008中设计了一个图表。 正如你在照片中看到的那样:
现在在Value
表中,我为Feature
和ProductDetail
设置了级联删除,但我看到以下错误:
'特征'表已成功保存' ProductDetail'表已保存 成功'价值'表 - 无法创建关系' ValueFeature'。引入FOREIGN KEY约束' ValueFeature'在桌子上'价值'可能导致周期或 多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。无法创建 约束。查看以前的错误。
我的设计有什么问题?
答案 0 :(得分:2)
我想我几年前在SQL Server 2005中遇到了同样的问题。我认为你的设计没有错误。如果删除Feature
,则希望删除所有Value
条记录。没有错。如果您没有其他级联,则自动删除不会进一步传播。但是,似乎 SQL Server不够聪明,无法理解,并且不允许您拥有这样的关系,只是因为您有外键形成一个圆圈。我认为如果你删除一个外键(仅用于测试)并打破圆圈(例如删除ProductDetail
和Product
之间的FK),就没有错误。
同时检查this stackoverflow question ..
希望我帮忙!