sql触发器,当一张表的某个值改变时,另一张表的某个值对应改变

本文详细介绍如何使用SQL触发器实现跨表数据同步。当ND52Rpt表中ShiFouTongYi字段更新时,触发器将自动更新EnquiryConferenceRoom表中的Occupy字段。文章展示了触发器创建步骤,包括变量声明、赋值及数据修改操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

仅仅做笔记用:

1.首先创建触发器:CREATE TRIGGER tr_changeOcuupy --触发器名称;

2.对应的在哪张表创建触发器:ON ND52Rpt  --表名;

3.触发的类型:update;

4.ND52Rpt表中的ShiFouTongYi的值改变时触发: IF UPDATE (ShiFouTongYi)  --当前字段被修改时;

5.定义变量:

DECLARE @updated_OID INT  --定义变量
DECLARE @updated_ShiFouTongYi int  --定义变量
SET @updated_OID  = (
    SELECT
        d.OID 
    FROM
        deleted d,
        inserted i
    WHERE
        d.OID  = i.OID 
) --变量赋值
SET @updated_ShiFouTongYi  = (
    SELECT
        d.ShiFouTongYi 
    FROM
        deleted d,
        inserted i
    WHERE
        d.ShiFouTongYi  = i.ShiFouTongYi 
) --变量赋值

6.改变另一张表的值:

--数据修改
UPDATE dbo.EnquiryConferenceRoom
SET Occupy = 1
WHERE
    WorkID = @updated_OID AND @updated_ShiFouTongYi =1;

CREATE TRIGGER tr_changeOcuupy --触发器名称
ON ND52Rpt  --表名
after UPDATE  --触发时间点
AS
IF UPDATE (ShiFouTongYi)  --当前字段被修改时
BEGIN
DECLARE @updated_OID INT  --定义变量
DECLARE @updated_ShiFouTongYi int  --定义变量
SET @updated_OID  = (
	SELECT
		d.OID 
	FROM
		deleted d,
		inserted i
	WHERE
		d.OID  = i.OID 
) --变量赋值
SET @updated_ShiFouTongYi  = (
	SELECT
		d.ShiFouTongYi 
	FROM
		deleted d,
		inserted i
	WHERE
		d.ShiFouTongYi  = i.ShiFouTongYi 
) --变量赋值

--数据修改
UPDATE dbo.EnquiryConferenceRoom
SET Occupy = 1
WHERE
	WorkID = @updated_OID AND @updated_ShiFouTongYi =1;
END

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值