TSQL,删除行和所有与外键相关的行

时间:2015-07-16 09:53:43

标签: sql-server tsql

我想知道是否存在删除行的查询,该行也会删除所有相关的外键相关数据。

我有一个带有表的数据库,该表通过外键引用同一个表中的其他行

ID  |  ParentID  |  Data fields
1   |  NULL      |  text and more data
2   |  1         |  Text and more data
3   |  2         |  ""

如您所见,第2项使用外键引用1。目前我无法删除对象1,因为对象2和3仍然存在于数据库中。我想知道是否有方法/查询(不更改表设置)删除对象1,因此也删除2和3.

DELETE FROM Table WHERE ID = 1 -- And this must then also delete row 2.
DELETE FROM Table WHERE ID = 1 OR ParentID = 1 -- Obviously doesn't work either.

我知道可以为表转换外键约束,但我想知道是否可以在不更改这些设置的情况下使用查询来完成。

1 个答案:

答案 0 :(得分:0)

最好的办法是启用CASCADE DELETE。 在此处阅读更多内容:How do I use cascade delete with SQL Server?