【发布时间】:2016-01-16 16:26:00
【问题描述】:
我有一个具有自动引用关系的表,如下所示:
TableA(IDTableA, IDTableARoot,...)
我有这个而不是删除触发器来删除:
Delete from TableA where IDTableARoot IN(select deleted.IDTableA from deleted)
Delete from TableA where IDTableA IN(select deleted.IDTableA from deleted)
我猜我有这两行:
第 1 行: IDTableA: 1 IDTableARoot: 1
第 2 行: IDTableA:2 IDTableARoot: 1
当我尝试删除第 1 行时:
delete from TableA where IDTableA = 1;
只有 ID = 1 的行被删除,而不是 ID = 2 的行,但它应该被删除,因为在触发器的第一条语句中我说我必须删除 IDTableARoot = 的行IDTableA 其中 IDTableA 是我要删除的行的 ID。
那么,我怎样才能删除属于自我关系的级联行?
非常感谢。
【问题讨论】:
标签: sql-server triggers cascading-deletes self-referencing-table