22,302
社区成员




ALTER TRIGGER [Trg_DelCategories]
ON [dbo].[Categories]
INSTEAD OF DELETE
AS
BEGIN
DECLARE @ID nvarchar(50);
SELECT @ID = ID FROM Deleted;
DELETE FROM dbo.Features WHERE CategoryID=@ID;
DELETE FROM dbo.Categories WHERE ParentID=@ID;
DELETE FROM dbo.Categories WHERE ID=@ID;
END
DELETE FROM dbo.Categories WHERE ParentID=@ID;
时并不会递归, 因此导致在删除所有@ID分类的子分类之后并不会删除@ID分类的子分类中的功能.
归根到底: 主要问题就是语句DELETE FROM dbo.Categories WHERE ParentID=@ID;
并不导致触发器递归.