Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除";“树”;来自sql的数据的数量?_Sql_Sql Server - Fatal编程技术网

如何删除";“树”;来自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不太可能。租约只能分配给一个单元,因此,如果要删除该单元,则还应删除其所有租约;这意味着它应该为你做所有的查找,而不是你必须自己一个一个地删除记录。我的表设计有点复杂,不适合传统的树。不过,我设计了级联,这样,如果顶级项被删除,所有内容都应该被删除。也许我需要回去核实一下瀑布。设计中肯定有“地图”表格,可能会引起悲伤。