87,907
社区成员
发帖
与我相关
我的任务
分享
CREATE TRIGGER [主表的xxxx触发器]
ON dbo.主表
AFTER INSERT, UPDATE
AS
IF UPDATE(某字段) --此处要避免某些情况下仅更新主表,不更新子表
UPDATE inserted SET Note = '';
CREATE TRIGGER [子表的xxxx触发器]
ON dbo.子表
AFTER INSERT, UPDATE
AS
--最好有条件判断是否单独更新子表的某条数据而不是全部
UPDATE m
SET Note = m.Note + ',' + i.Note
FROM inserted i
INNER JOIN 主表 m ON i.PID = m.ID;
--下面这条一次更新所有子表的备注到主表,可避免仅更新子表的某一部份导致备注不全问题,选一条执行即可
UPDATE m
SET Note = STUFF(
(SELECT ',' + Note FROM 子表 s WHERE s.PID = i.PID FOR XML PATH('')),
1, 1)
FROM inserted i
INNER JOIN 主表 m ON i.PID = m.ID;