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> 是否专职由'''+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修改了如下信息:
是否专职由'是'修改为'';
是否专职由'专职'修改为'';
是否专职由'非专职'修改为'';
是否专职由'专职'修改为'';
是否专职由'专职'修改为'';
是否专职由'专职'修改为'';
是否专职由'专职'修改为'';
是否专职由'专职'修改为'';
是否专职由'专职'修改为'';
触发器是把所有的记录更新后,把变更结果存在了每一条记录的“变更记录”字段。
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> 是否专职由'''+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修改了如下信息:
是否专职由'是'修改为'';
是否专职由'专职'修改为'';
是否专职由'非专职'修改为'';
是否专职由'专职'修改为'';
是否专职由'专职'修改为'';
是否专职由'专职'修改为'';
是否专职由'专职'修改为'';
是否专职由'专职'修改为'';
是否专职由'专职'修改为'';
触发器是把所有的记录更新后,把变更结果存在了每一条记录的“变更记录”字段。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货