触发器大概这样: 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;
能不能给个demo 实在是能力有限
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;
我先学习下,但是之前只看过别人写js,触发器更没接触过了 我这边写了一部分出来了,js做的,但是遇到点问题,可否指点下