如何在单个查询中删除子表和父表中的记录?

时间:2010-07-14 14:07:12

标签: sql-server-2005 tsql

我有一个主表和一个详细信息表。 删除级联时指定。

我希望在单个查询中删除子记录和主记录。

假设我想使用单个查询删除EmpID = 20的EmployeeDetails和Employee记录。

有可能吗?

请帮忙。

3 个答案:

答案 0 :(得分:3)

除非您已启用cascade delete或PK表上有trigger将删除该关系的FK表行,否则无法在单个查询中执行此操作

答案 1 :(得分:2)

SQL中没有允许您从单个命令中的两个表中删除的构造。您可以在单个“批处理”或事务中执行此操作(这将是更好的选择)。

答案 2 :(得分:1)

您可以在子表上添加触发器以删除任何其他子项,然后删除父项。这不是“技术上”单个语句,但您的应用程序只需要发出一个DELETE就可以完成。