我正试图在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