【发布时间】:2011-04-14 15:01:14
【问题描述】:
SQL Server 2008 中是否有一个查询会同时删除所有相关表中的数据以及所选表?
我很抱歉没有详细说明这个问题。我知道 Cascade Delete 可以正常工作,但我的应用程序连接到第 3 方 SQL Server 数据库。我有一些单元测试插入到目标表和从属表中。不幸的是,目标表上的约束不是 On Delete Cascade,我无法创建它们或创建它们。我正在寻找一种通用的方法来遍历依赖项并以正确的顺序删除数据。
【问题讨论】:
-
如果你有完整性约束(外键)和级联删除规则,你就不用担心了。 publib.boulder.ibm.com/infocenter/idshelp/v10/topic/…
-
尽管链接是针对 informix 文档的,但对于 sql server 也是如此。
-
如果您至少定义了外键(没有级联删除),则可以使用系统表创建动态 SQL,并且实际上执行与级联删除相同的操作。如果没有定义外键,那么为它制定通用解决方案的希望渺茫。
-
@Lieven,是的,与依赖表存在外键关系。您能否详细说明您的建议?
标签: sql sql-server tsql sql-server-2008