我正在尝试在 SQL Server 中的同一个表之间创建多对多关系。
我有一张桌子Object
有柱子ObjectId
and Name
.
该关系遵循以下规则:
- 一个孩子可以有多个父母
- 一个父母可以有很多孩子
- ObjectA 可以是 Object 的子级,并且 Object 可以是 ObjectA 的子级
- 但对象不能是其自身的直接子对象
所以我创建了第二个表ObjectRelation
有柱子ParentId
and ChildId
当然我希望通过级联删除这些关系。
但是当我在 SQL Server 中尝试这个时,我收到错误
在表“tblADMembership”上引入 FOREIGN KEY 约束“FK_ObjectRelation_Object1”可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
在 SQL Server Compact 中我得到
引用关系将导致不允许的循环引用。
我做了一些研究,我明白为什么会出现这些错误,但是有没有一种方法可以解决这个问题,并且也适用于 SQL Server Compact(因此没有存储过程)?或者有更好的方法来模拟这种关系吗?
我自己也遇到了类似的问题......我最终删除了外键。循环删除逻辑被推送到Code中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)