CREATE trigger tri_updateAppraiserDw on dbo.AppraiserInfo 
for update 
as 
begin
       declare @str varchar(4000)
             declare @strTitle varchar(50) IF  NOT UPDATE(DwID) 
                   RETURN
             set @str=''
    set @strTitle='<br>'+convert(varchar(20),getdate(),120)+'修改了如下信息:'
            
         if update(IfFullTime)
select  @str=@str+'<br>&nbsp;&nbsp;是否专职由'''+isnull(d.[IfFullTime],'')+'''修改为'''+isnull(i.[IfFullTime],'')+''';'  from deleted d,inserted i where i.id=d.id  and isnull(i.IfFullTime,'')<>isnull(d.IfFullTime,'')
if @str<>''
 begin 
          update a set a.ChangeRecord=@strTitle+@str+convert(varchar(8000),isnull(a.ZhiDanChange,'')),a.ChangeDay=convert(varchar(20),getdate(),120)   from AppraiserInfo a,deleted b where a.id=b.id end 
end这个触发器的作用是,当IfFullTime的直被修改,把修改的日志存放一个叫“变更记录”的字段,格式是:
  admin2006-05-25 14:23:53修改了如下信息:
     是否专职由'是'修改为'';
但是,我用查询分析器,使用update批量更新记录时,该变更记录就变成了:admin2006-05-25 14:23:53修改了如下信息:
  是否专职由'是'修改为'';
  是否专职由'专职'修改为'';
  是否专职由'非专职'修改为'';
  是否专职由'专职'修改为'';
  是否专职由'专职'修改为'';
  是否专职由'专职'修改为'';
  是否专职由'专职'修改为'';
  是否专职由'专职'修改为'';
  是否专职由'专职'修改为'';
触发器是把所有的记录更新后,把变更结果存在了每一条记录的“变更记录”字段。