T-sql 创建触发器t3,当修改employees时,如果将员工表中员工的工作时间增加1年,则salary表中income增加 500,对应的outcome增加50; --增加2年则income增加1000,outcome增加100,以此类推。
时间: 2024-03-07 07:47:20 浏览: 76
SQL 工作时间触发器设计
5星 · 资源好评率100%
好的,以下是创建触发器t3的T-SQL语句:
```
CREATE TRIGGER t3
ON employees
AFTER UPDATE
AS
BEGIN
IF UPDATE(work_time)
BEGIN
DECLARE @addedYears INT
DECLARE @incomeIncrease INT
DECLARE @outcomeIncrease INT
SELECT @addedYears = (INSERTED.work_time - DELETED.work_time) / 365,
@incomeIncrease = (INSERTED.work_time - DELETED.work_time) / 365 * 500,
@outcomeIncrease = (INSERTED.work_time - DELETED.work_time) / 365 * 50
FROM INSERTED
INNER JOIN DELETED ON INSERTED.employee_id = DELETED.employee_id
IF @addedYears > 0
BEGIN
UPDATE salary
SET income = income + @incomeIncrease,
outcome = outcome + @outcomeIncrease
WHERE employee_id = INSERTED.employee_id
END
END
END
```
这个触发器会在修改employees表中的数据时触发,检查是否修改了工作时间(work_time)字段。如果是,则计算出工作时间增加的年数,并根据年数计算出income和outcome需要增加的值。然后,根据employee_id更新salary表中对应的income和outcome字段的值,使其增加相应的值。
需要注意的是,这个触发器只会在修改employees表中的数据时触发,而且只会在work_time字段被修改时才会执行更新操作。如果其他字段被修改,或者没有修改work_time字段,则不会执行更新操作。
阅读全文