【发布时间】:2013-01-07 04:33:41
【问题描述】:
目前我正在一个具有树状结构的数据库中工作。基本上有一个顶级表,大约有 10 个表在该表上有一个外键。这些表中的每一个都有另外 10 个具有外键约束的表。现在我的目标是从主表中删除一些记录,同时删除子、孙等。当然,外键使这成为一项艰巨的任务。
我进行了一些搜索,并在使用级联删除时遇到了检查这个question,我想如果我只处理几个表,这将起到作用。但是,在我目前的设置中,一张一张地改变 100 多张桌子仍然不是一件令人愉快的事情。
因此,我想问是否有一种简单的方法可以在涉及许多表时删除具有外键的值。
由于我对相对较小的数据库有一定的控制权,因此查询效率和值被其他人删除的风险并不是真正值得关注的问题。因此,对所有表应用级联删除可能很容易,但我也对完全不同的解决方案持开放态度(在 microsoft server studio 2008 中使用 T-SQL)。
【问题讨论】:
-
这取决于,虽然您删除了父记录,但您是否要将这些值保留在子记录中以用于历史记录目的?
-
@bonCodigo 不,我也真的想删除孩子。
标签: sql sql-server-2008 tsql cascading-deletes