if exists(select 1 from tb where parent in(select id from inserted))
好久没写触发器了,不保证语法全部正确 CREATE TRIGGER TIG1 ON TREEGRID AS BEGIN UPDATE T1 SET T1.ISHAVLEAF=CASE WHEN EXISTS( SELECT 1 FROM TREEGRID T2 WHERE T2.PARENTID=T1.ID ) THEN 1 ELSE 0 END FROM TREEGRID T1 INNER JOIN INSERTED T2 ON T1.ID=T2.ID OR T1.ID=T2.PARENTID END
看错了 可以写 create table csdn(id int identity, parent int ,ishaveleaf int) insert csdn(parent,ishaveleaf) select 1,0 union all select 4,0 select * from csdnalter trigger ins_csdn on csdn for insert as begin if exists(select * from csdn a,inserted b where a.id=b.id and a.ishaveleaf=1 ) return else update csdn set ishaveleaf=1 from csdn a,inserted b where a.id=b.parent end
CREATE TRIGGER TIG1 ON TREEGRID
AS
BEGIN
UPDATE T1
SET T1.ISHAVLEAF=CASE WHEN EXISTS(
SELECT 1 FROM TREEGRID T2 WHERE T2.PARENTID=T1.ID
) THEN 1 ELSE 0 END
FROM TREEGRID T1
INNER JOIN INSERTED T2 ON T1.ID=T2.ID OR T1.ID=T2.PARENTID
END
create table csdn(id int identity, parent int ,ishaveleaf int)
insert csdn(parent,ishaveleaf)
select 1,0
union all select 4,0
select * from csdnalter trigger ins_csdn
on csdn
for insert
as
begin
if exists(select * from csdn a,inserted b where a.id=b.id and a.ishaveleaf=1 )
return
else
update csdn set ishaveleaf=1 from csdn a,inserted b where a.id=b.parent
end