create trigger trigger_name 
after update on data_order_status 
AS
begin
    insert into aud_data_order_status(logname,logtime,action,machine,program,status_old,status)
    select 
        sys_context('USERENV','OS_USER'),
        sysdate,
        ’update’,
        sys_context('USERENV','HOST'),
        program, 
        status_old =(select status from deleted),
        status     =(select status from inserted)  
END;

解决方案 »

  1.   

    SQL Server中有sys_context函数?
      

  2.   

    create trigger trigger_name 
    after update on data_order_status 
    AS
    begin
        insert into aud_data_order_status(logname,logtime,action,machine,status_old,status)
        select 
            user,
            convert(varchar,getdate()),
            'update’,
            host_name(),
            D.status_old, 
            I.status
        from deleted D join inserted I on D.主键=I.主键
    END
      

  3.   

    create trigger trigger_name 
    after update on data_order_status 
    AS
        insert into aud_data_order_status(logname,logtime,action,machine,program,status_old,status)
        select 
            user,
            sysdate,
            'update',
            host_name(),
            program, 
            status_old =(select status from deleted),
            status     =(select status from inserted)  
    GO
      

  4.   

    一头汗,楼主直接把Oracle的代码贴过来,我都蒙了,呵呵create trigger trigger_name 
    after update on data_order_status 
    AS
        insert into aud_data_order_status(logname,logtime,action,machine,program,status_old,status)
        select 
            user,
            getdate(),
            'update',
            host_name(),
            program, 
            status_old =(select status from deleted),
            status     =(select status from inserted)  
    GO
      

  5.   

    谢谢 libin_ftsafe(子陌红尘)的回复,但还有两个问题.
    1.user能不能显示网络登陆的用户名,而不是数据库的用户名
    2.以上的program出错.
    有没有办法解决,谢谢啦!