我创建了一个查询,该查询将从具有' Employee'的三个表中删除行。 当我执行它时,它只删除一个表 tblEmployeeType 中的行。我尝试在 DELETE 旁边添加其他表的 Alias ,但SQL不支持它。是否有从多个表中删除行的替代方法?或者我在查询中忘记了一些代码,或者我应该单独删除查询?谢谢。
DELETE a
FROM tblEmployeeType a INNER JOIN
tbl_Selected_AccessType b
ON a.EmpTypeName = b.UserType INNER JOIN
tbl_AccessType_AllFunction c
ON a.EmpTypeName = c.UserType
WHERE a.EmpTypeName = 'Employee'`
答案 0 :(得分:1)
INSERT
和UPDATE
语句一次只能直接影响一个表。如果您使用ON DELETE CASCADE
配置了外键,则子记录将与父记录一起删除。无论使用级联,您都应该在表上使用外键,以便DELETE
不会使孤立的子记录失去参照完整性。
实现影响INSERT
或UPDATE
中其他表的另一种方法是使用表上的触发器。当您想在盲目删除子记录之前进行检查时,这是可取的。