使用场景说明:
表"UserBase"中存有一列数据是日期格式的数据datatime,列名为注册时间,字段名"Regtime";
想要计算出注册时间到今天是多少天;插入到新的列,列名为注册天数,字段名"Regday";而且随着时间变换注册天数一直在变;
触发器命令:
-- UserBase表增加Regday列,类型为varchar(50),
ALTER TABLE UserBase add Regday varchar(50)
-- 增加触发器,找到用户ID不为空的数据,然后监控字段Regtime,统计天数更新到Regday
create trigger UserBase_Regday_update
on UserBase
after update
as
begin
if update(userId)
declare @userId int;
select @userId=userId from inserted;--inserted表示当前修改的数据行
IF @userId<>''
update UserBase set Regday=DateDiff(day,getdate(),Regtime) where id in (select id from inserted);
update UserBase set Regday='' where Regtime='' and id in (select id from inserted);
end