我正在使用 SQL Server 2012
我有一张桌子叫AMOUNTS
和一张桌子叫AMOUNTS_HIST
两个表都有相同的列:
- 改变日期
- 数量
- COMPANY_ID
- EXP_ID
- 点
- UPDATE_DATE [系统日期]
的主键AMOUNTS
是 COMPANY_ID 和 EXP_ID。主键 pfAMOUNTS_HIST
是 COMPANY_ID、EXP_ID 和 CHANGE_DATE
每当我在AMOUNTS
表中添加一行时,我想在表中创建它的副本AMOUNTS_HIST
。[理论上,每次将一行添加到“AMOUNTS”,COMPANY_ID、EXP_ID、CHANGE_DATE 将是唯一的。实际上,如果不是,则需要覆盖 AMOUNTS_HIST 中的相关行。下面的代码没有考虑覆盖。]
我创建了一个触发器,如下所示:
CREATE TRIGGER [MYDB].[update_history] ON [MYDB].[AMOUNTS]
FOR UPDATE
AS
INSERT MYDB.AMOUNTS_HIST (
CHANGE_DATE,
COMPANY_ID,
EXP_ID,
SPOT
UPDATE_DATE
)
SELECT e.CHANGE_DATE,
e.COMPANY_ID,
e.EXP_ID
e.REMARKS,
e.SPOT,
e.UPDATE_DATE
FROM MYDB.AMOUNTS e
JOIN inserted ON inserted.company_id = e.company_id
AND inserted.exp_id=e.exp_id
我不明白为什么它在我的AMOUNTS_HIST
桌子上什么也没做。任何人都可以帮忙吗?
谢谢,