如果触发器中更新了两列中的一列,如何插入另一个表



我正试图在SQL server中使用更新后触发器将值插入另一个表中。

我有一个表,用于存储我的员工(employee_id、name、exam_results、exam_date(,我需要创建一个触发器,允许我在employees表中更新exam_resources或exam_dame时,将employee_id、exam.results和exam_data插入到名为exam_backlog的表中。

我不知道我是否能够检查这些字段来进行插入。

这就是我目前所拥有的:

CREATE TRIGGER updateExamBacklogTrigger 
ON  employees
AFTER  UPDATE
AS 
BEGIN
*****HERE IS WHERE I NEED TO CHECK IF ONE OF THOSE TWO FIELDS HAS BEEN UPDATED*****
INSERT INTO exams_backlog SELECT e.employee_id, e.exam_results, e.exam_date FROM employees e
SET NOCOUNT ON;
END
GO

提前谢谢。

我找到了我一直在寻找的解决方案:

由于我想检查exam_results或exam_date是否已更新,我使用了

IF(UPDATE(exam_results) OR UPDATE(exam_date ))

然后,为了只插入那些已经更新的员工的数据,我使用了

INNER JOIN inserted i ON i.employee_id = e.employee_id

因此,完整的触发结果如下:

CREATE TRIGGER updateExamBacklogTrigger 
ON  employees
AFTER  UPDATE
AS 
BEGIN
IF(UPDATE(exam_results) OR UPDATE(exam_date ))
INSERT INTO exams_backlog SELECT e.employee_id, e.exam_results, e.exam_date FROM employees e INNER JOIN inserted i ON i.employee_id = e.employee_id
SET NOCOUNT ON;
END
GO

最新更新