目前我正在一个具有树状结构的数据库中工作。基本上有一个顶级表,大约有 10 个表在该表上有外键。这些表中的每一个都有另外 10 个带有外键约束的表。现在我的目标是从主表中删除一些记录,并删除子表、孙子表等。当然,外键使这成为一项艰巨的任务。
我搜索了一下,发现检查了这个question关于使用级联删除,我想如果我只处理几个表,这会起作用。然而,在我目前的设置下,将 100 多个表一一更改仍然不太愉快。
因此我想问当涉及很多表时是否有一种简单的方法可以删除具有外键的值。
由于我对相对较小的数据库有一定的控制权,因此查询效率和值被其他人删除的风险并不是真正的问题。因此,对所有表应用级联删除可能很容易,但我也愿意接受完全不同的解决方案(在 microsoft server studio 2008 中使用 T-SQL)。
最佳答案
你看过这个吗?这家伙正在根据数据库中的外键关系自动生成删除语句:
Generate Delete Statement From Foreign Key Relationships in SQL 2008?
我个人并不是它的忠实粉丝,但这是值得尝试的事情。
关于sql - 从具有多个外键的表中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14484081/