怎么用触发器记录哪个字段被更改了,是SQL数据库

2025-03-04 19:25:57
推荐回答(1个)
回答1:

试一下如下的测试sql。

create table info(_id int unique identity(1,1),grade decimal(10,2);
go
insert into info(grade)values(10);
go

create trigger info_update_trigger on info for update
as
begin
    declare @old_grade decimal(10,2), @new_grade decimal(10,2);
    select @new_grade = n.grade,
           @old_grade = o.grade
         from inserted as n
        inner join deleted as o on o._id=n._id;
    if(@new_grade != @old_grade )
    begin
        print('old grade=' + convert(varchar,@old_grade));
        print('new grade=' + convert(varchar,@new_grade));
        print('log it');
    end
end
go

update info set grade = grade + 1 where _id=1