【发布时间】:2009-01-11 01:55:48
【问题描述】:
我正在尝试确保在没有更多使用级联删除的引用时自动删除某些数据。我会用一个基于 Stack Overflow 的 fake 数据库来解释。
我有一个Post 表。每个帖子都有零到多个标签。
所以它应该是这样的:
发布 PostTags 标签
例如。
帖子 1 有标签 'A'、'B'、'C' 帖子 2 有标签“C”、“D”。
现在,我正在做的是,当我删除帖子 2 的所有标签(例如DELETE FROM PostTags WHERE PostId = 2)时,我希望标签“D”也被删除,因为如果没有其他人引用它。我认为级联删除会处理这个问题,但当然只有当你从Tag->PostTags 或Post->PostTags 级联下来。
我不知道如何处理。
恐怕人们会建议使用触发器 :((系统的额外复杂性)。
想法?
注意:数据库是 MS Sql2008。
【问题讨论】:
标签: sql-server sql-server-2008 many-to-many