【问题标题】:SQL Server - Update other table only if column values change [closed]SQL Server - 仅在列值更改时更新其他表[关闭]
【发布时间】:2020-07-21 19:26:28
【问题描述】:

我有数据从外部程序流式传输到我的 SQL Server 数据库中的 TABLE1。假设 TABLE1 由列 data1 和 data2 组成。当 TABLE1 中的值发生更改时,如何更新到另一个表 (TABLE2)?

举个例子,假设 data1 列中的值发生了变化。

注意:我写了一个可以工作的触发器,但这只是基于手动更新。我不知道如何自动执行此操作,这意味着触发器将自行比较表中的新旧值,然后在值不同时执行更新。

【问题讨论】:

标签: sql-server triggers sql-update


【解决方案1】:

类似下面的东西会起作用,

CREATE TRIGGER after_update_table1
AFTER UPDATE ON table1 
FOR EACH ROW 
BEGIN 
     IF OLD.val1<> new.val1 THEN
         /**
            -- do operations on table2
        **/ 
     END IF;
END;

-- 如果 val1 允许 null,我们需要通过向 if 子句添加更多条件来检查,例如,

IF((OLD.val1 IS NULL AND NEW.val1 IS NOT NULL) OR (OLD.val1 IS NOT NULL AND NEW.val1 IS NULL) OR (OLD.val1<>NEW.val1)) THEN

/**
-- operations on table2
**/
END IF;

【讨论】:

    猜你喜欢
    • 2022-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    相关资源
    最近更新 更多