订单表中字段
dbo.tb_Order:
FBillNO, FNetBillNO, FCusNO, FPayStyle, FFetchStyle, FAddress, FCustName, FCustAddress, FCustTel, FNote, FTypeID, FDept, Fstatus, Isdel
订单日志中字段:
dbo.tb_Order_Log
NO, FBillNO, FName, FEvent, FTime, FNote求一存储过程,在对订单表dbo.tb_Order做新增操作时,把新增的信息同时更新到订单日志表dbo.tb_Order_Log 其中,NO 为自动增长的,FTime为当前时间,FName为当前登录用户,FBillNO,FNote为dbo.tb_Order中信息,FEvent默认为空。字段类型都可以的,其中两表一致!谢谢帮助,有正确答案就给分!!

解决方案 »

  1.   

    --大致写法如下:create trigger my_trig on tb_Order for insert
    as
      insert into tb_Order_Log (FBillNO, FName, FTime, FNote )
      select FBillNO , 这个登录用户比较麻烦, getdate(),FNote from inserted
    go--最好表tb_Order加个登录用户字段,把登录用户写入tb_Order表。就可以这样:
    create trigger my_trig on tb_Order for insert
    as
      insert into tb_Order_Log (FBillNO, FName, FTime, FNote )
      select FBillNO , FName, getdate(),FNote from inserted
    go
      

  2.   

    使用触发器完成create trigger t1
    on dbo.tb_Order
    for insert
    as
    begin
      insert into tb_Order_Log(FBillNO, FName, FTime, FNote )
      select FBillNO,user_name(),getdate(),FNote
      from isnerted
    end
      

  3.   

    简单一点的也可以考虑 2005的output 详情请参考http://blog.csdn.net/js_szy/archive/2009/11/30/4908948.aspx
      

  4.   

    create proc ins_order_log 
    @fbillno int --输入单据号
    .
    .            --各种输入参数
    .
    .
    as
      begin tran
    declare @rerurn int
    insert into tb_order(fbillno,......) select @fbillno......
      if @@error<>0
         begin
           goto err
           set @return=1
         end
    insert into tb_order_log(TBILLNO) select @TBILLMNO
    err:
      rollback tran
      

  5.   

    --大致写法如下:create trigger my_trig on tb_Order for insert
    as
      insert into tb_Order_Log (FBillNO, FName, FTime, FNote )
      select FBillNO , 这个登录用户比较麻烦, getdate(),FNote from inserted
    go--最好表tb_Order加个登录用户字段,
    --1
    create trigger my_trig on tb_Order for insert
    as
      insert into tb_Order_Log (FBillNO, FName, FTime, FNote )
      select FBillNO , user_name(), getdate(),FNote from inserted
    go--2
    create trigger my_trig on tb_Order for insert
    as
      insert into tb_Order_Log (FBillNO, FName, FTime, FNote )
      select FBillNO , SYSTEM_USER, getdate(),FNote from inserted
    go