我正在尝试创建一个触发器,只有在特定列已更新(而不是整个表)时才会插入表数据。
例如,我有2个名为tbl.A
和tbl.A_History
的表:
tbl.A 有5列: ID,姓名,地点,年龄,性别。
我希望仅在位置或名称已更改时才将更新的行插入历史记录,如果ID,年龄,性别更新,删除,插入,则无需执行任何操作。
此外,我希望能够区分位置和名称。
如果位置已更改,请插入location have been changed
。
如果更改名称,请插入name have been changed
。
我尝试了几件事,但没有运气。
答案 0 :(得分:1)
CREATE TRIGGER trigger_name ON tbl.A
FOR UPDATE
AS
IF ( UPDATE(location) OR UPDATE(name))
BEGIN
-- your sql here
END
答案 1 :(得分:-1)
CREATE TRIGGER Test_Trg_01
ON Test
AFTER Update
AS
BEGIN
IF update(name)
INSERT INTO Test_Log SELECT id, 'name updated' AS LogMessage FROM inserted;
IF update(country)
INSERT INTO Test_Log SELECT id, 'country updated' AS LogMessage FROM inserted;
END