sqlserver创建触发器更新表的内容

sqlserver创建触发器更新表的内容

创建update触发器

最近工作中遇到一个小问题,需要创建触发器实现表中数据的更新操作。具体就是:当A表中某一列中的值发生改变时,依据条件更新另一列的值

具体思路

更新的动作我们可以分2步理解,先delete ,再insert
所以,前的值在 deleted里,后的值在 inserted里:

  1. 创建示例表
    CREATE TABLE [dbo].[yty1](
    [id] [int] NOT NULL,
    [name] varchar NULL,
    [remark] varchar

  2. 创建触发器

  3. create TRIGGER [dbo].[T_yty] ----触发器名称
    ON [yty].[dbo].[yty1] -----对应的数据表
    AFTER UPDATE -----在更新表时触发
    AS
    if update ([name]) ----如果更新的是name列
    BEGIN

    declare @name_start varchar(50) —设置变量存储变换前的值
    declare @name_end VARCHAR(50) ----设置变量存储变更后的值
    declare @id int
    SELECT @name_end= name,@id=id FROM INSERTED----变量赋值
    select @name_start=name from deleted
    -----变量赋值
    if @name_end=‘2’ ----如果变更后的值是2
    update dbo.yty1 set remark =‘ytyyty’ where id=@id
    ----更新备注信息
    END

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值