22,297
社区成员
发帖
与我相关
我的任务
分享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;
ENDDELETE FROM dbo.Categories WHERE ParentID=@ID;时并不会递归, 因此导致在删除所有@ID分类的子分类之后并不会删除@ID分类的子分类中的功能.
归根到底: 主要问题就是语句DELETE FROM dbo.Categories WHERE ParentID=@ID;并不导致触发器递归.