如何删除";“树”;来自sql的数据的数量?
我的表结构类似于:如何删除";“树”;来自sql的数据的数量?,sql,sql-server,Sql,Sql Server,我的表结构类似于: Portfolios Properties Units Leases The DELETE statement conflicted with the REFERENCE constraint "FK_Leases_Units". The conflict occurred in database "MyDb", table "Leases", column 'UnitId'. 所有表都使用外键关系和级联删除进行设置。我希望能够删除一个投资组合,这将依次
Portfolios
Properties
Units
Leases
The DELETE statement conflicted with the REFERENCE constraint "FK_Leases_Units". The conflict occurred in database "MyDb", table "Leases", column 'UnitId'.
所有表都使用外键关系和级联删除进行设置。我希望能够删除一个投资组合,这将依次删除分配给该投资组合的所有财产、分配给这些财产的所有单位以及分配给这些单位的所有租赁
我得到的错误类似于:
Portfolios
Properties
Units
Leases
The DELETE statement conflicted with the REFERENCE constraint "FK_Leases_Units". The conflict occurred in database "MyDb", table "Leases", column 'UnitId'.
删除这样的数据“树”的正确方法是什么
如果重要的话,我使用的是MS SQL Server 2008。您确定已将
FK\u单元设置为级联删除吗?树上的每个FK都必须设置为级联删除,否则所有FK都不起作用…看起来最低级别不是这样设置的
我会再次检查这个,如果设置为级联,你不应该得到那个错误…它会删除所有带有该UnitId的行,而不是抱怨父行丢失。你必须确保以正确的顺序删除记录。不能删除作为另一个表中另一条记录的键的记录。检查您的删除顺序,您会发现问题。您确定已设置级联删除吗?这是为了工作。一个单元可以与多个租约关联,或者至少涉及多个单元吗?@John Yes,每个单元可以有多个租约在这种情况下,您删除一个单元,这将删除该单元的租约。有没有可能其中一份被删除的租约还涉及到一个尚未被删除的单元?@John不太可能。租约只能分配给一个单元,因此,如果要删除该单元,则还应删除其所有租约;这意味着它应该为你做所有的查找,而不是你必须自己一个一个地删除记录。我的表设计有点复杂,不适合传统的树。不过,我设计了级联,这样,如果顶级项被删除,所有内容都应该被删除。也许我需要回去核实一下瀑布。设计中肯定有“地图”表格,可能会引起悲伤。