sqlserver创建触发器更新表的内容
创建update触发器
最近工作中遇到一个小问题,需要创建触发器实现表中数据的更新操作。具体就是:当A表中某一列中的值发生改变时,依据条件更新另一列的值
具体思路
更新的动作我们可以分2步理解,先delete ,再insert
所以,前的值在 deleted里,后的值在 inserted里:
-
创建示例表
CREATE TABLE [dbo].[yty1](
[id] [int] NOT NULL,
[name] varchar NULL,
[remark] varchar
) -
创建触发器
-
create TRIGGER [dbo].[T_yty] ----触发器名称
ON [yty].[dbo].[yty1] -----对应的数据表
AFTER UPDATE -----在更新表时触发
AS
if update ([name]) ----如果更新的是name列
BEGINdeclare @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