--触发器代码 CREATETRIGGER tr_Users ON Users FORINSERT,UPDATE,DELETE AS BEGIN SET NOCOUNT ON UPDATE Departments SET membercount=Dep.membercount+b.membercount --Tb.membercount是这次操作的增量,可能为负数 FROM Departments, ( SELECT departid, SUM(membercount) AS membercount --增量由统计得到 FROM ( SELECT departid, 1AS membercount FROM inserted --插入(Insert操作)或者新部门(Update操作)人数+1 UNIONALL SELECT departid, -1AS membercount FROM deleted --删除(Delete操作)或者旧部门(Update操作)人数-1 ) AS Ta GROUPBY departid HAVINGSUM(membercount)<>0--只取<>0的数据减少更改的记录数 ) AS Tb WHERE Departments.departid=Tb.departid --连接条件 END GO