【SQLSERVER】更新触发器获取更新⾏的数据sql update 触发器获得被update的⾏的信息
create trigger TgName
on tb
for update
as
if update(recommend)
begin
update tb set commenddate=(getdate()) from tb inner join inserted on tb.vlistid=Inserted.vlistid
end
关键在于Inserted表
触发器语句中使⽤了两种特殊的表:deleted 表和inserted 表。
Deleted 表⽤于存储 DELETE 和 UPDATE 语句所影响的⾏的复本。在执⾏ DELETE 或 UPDATE 语句时,⾏从触发器表中删除,并传输到 deleted 表中。Deleted 表和触发器表通常没有相同的⾏。
Inserted 表⽤于存储 INSERT 和 UPDATE 语句所影响的⾏的副本。在⼀个插⼊或更新事务处理中,新建⾏被同时添加到 inserted 表和触发器表中。Inserted 表中的⾏是触发器表中新⾏的副本。
1.插⼊操作(Insert)
Inserted表有数据,Deleted表⽆数据
2.删除操作(Delete)
Inserted表⽆数据,Deleted表有数据
sql触发器的使用3.更新操作(Update)
Inserted表有数据(新数据),Deleted表有数据(旧数据)