You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建Table A增改触发Table B更新的数据库触发器需求

数据库触发器实现:Table A操作后联动更新Table B

需求概述

当Table A完成插入或更新操作后,若操作涉及的记录满足以下两个条件:

  • Comment字段为NULL
  • Color字段不为NULL

则更新Table B中与该记录PersonId、Year、Quarter完全匹配的已有记录,将其Responded字段设为NULL。

示例场景

向Table A插入4条记录时,仅TableAId=1的记录符合触发条件(Comment为null、Color不为null),此时需将Table B中PersonId='Joe'、Year=2022、Quarter=4的TableBId=2记录的Responded字段设为null。

触发器实现代码(以SQL Server为例)

CREATE TRIGGER TR_TableA_AfterInsertUpdate
ON TableA
AFTER INSERT, UPDATE
AS
BEGIN
    SET NOCOUNT ON;

    UPDATE b
    SET b.Responded = NULL
    FROM TableB b
    INNER JOIN inserted i
        ON b.PersonId = i.PersonId
        AND b.Year = i.Year
        AND b.Quarter = i.Quarter
    WHERE i.Comment IS NULL
      AND i.Color IS NOT NULL;
END;
GO

代码说明

  • 触发器监听TableA的INSERT和UPDATE两种操作,确保两种场景都能触发联动更新
  • 使用SQL Server内置的inserted系统表获取本次操作产生的新记录(插入的记录或更新后的记录)
  • 通过内连接精准匹配TableB中PersonId、Year、Quarter与目标记录一致的条目
  • 仅对满足Comment IS NULL且Color IS NOT NULL的记录执行更新,避免无效操作
  • SET NOCOUNT ON用于屏蔽触发器执行时的影响行数返回信息,防止干扰主操作的执行反馈

内容的提问来源于stack exchange,提问作者CGSD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 18:35:16