想在对一条记录做修改时,系统能自动记录下修改前与修改后的记录内容,同时要增加两个字段:修改人、修改时间!
现在的问题是:1)我要根据一个字段内容的改变来确定是否要记录修改信息
代码:
CREATE TRIGGER test ON [dbo].[bpbl] 
FOR  UPDATE 
AS
update bpbl set =+1 where matnr in(select matnr from deleted)
if update()  
begin
insert into bpbl1(matnr,txz01,price,meins,kcl,lgpbe,)
select matnr,txz01,price,meins,kcl,lgpbe ,'old' as  from deleted
insert into bpbl1(matnr,txz01,price,meins,kcl,lgpbe,)
select matnr,txz01,price,meins,kcl,lgpbe ,'new' as  from inserted
end
这段代码,有点问题,当我修改bpbl表中的信息时,能修改字段的值,但是if update()为什么会是false?              
2)如果使用触发器的话,那么“修改人”这个参数怎么传递?
3)如果使用存储过程,怎么才能使存储过程与触发器结合起来?
谢谢!

解决方案 »

  1.   


       suser_name   修改人用登录用户行不
      

  2.   

    update bpbl set =+1 where matnr in(select matnr from deleted)
    你把这条语句去掉看看。。行不行。。
    后面的语句没错。我在查询分析器里面执
      

  3.   

    你的问题是可以解决的。我实现过与你完全一样的的需求。
    就得用trigger.
    关于修改人的问题。你可以在表中多加一个字段。这样最稳定。速度也快。至于用参数传递的方法不是很好。
    等一下我给你贴出来希望对你有点启发