小弟有一个
  表A
  ID  节目名称   母盘号码
  表B
  ID  节目名称   母盘号码  删除者  删除时间在A表上建立了一个删除触发器,想实现当A表中删除记录时,把A表中删除的记录添加到B表中,但是B表中多出 “删除者”和“删除时间”字段,删除时间还好说,有Getdate()函数来实现,但是 “删除者” 想用登陆系统时用户名来赋值,如何实现啊?

解决方案 »

  1.   

    当前用户CURRENT_USER
    或者user_name()  --不带参数时返回当前用户
      

  2.   

    create trigger trigname on tableA for delete
    as
      insert into tableB
      select *, getdate(), user_name()
      from deletedcreate trigger trigname on tableA for delete
    as
      insert into tableB
      select *, getdate(), current_user
      from deleted
      

  3.   

    dulei115 兄你好,十分感谢你的回帖!
     
    有一点,user_name() 和current_user,返回的是数据库的所有者dbo,而不是登陆程序时的用户名子?如何实现呢,还请多多指教!!!
      

  4.   

    写一个存储过程实现了,这样的没办法
      表A
      ID  节目名称   母盘号码
      表B
      ID  节目名称   母盘号码  删除者  删除时间insert inot B
    select *,@vDeleter,getdate() from A
    where ID=11
    delete from A where ID=11
    参数@vDeleter从页传下来就OK
      

  5.   

    写一个存储过程实现了,这样的没办法
      表A
      ID  节目名称   母盘号码
      表B
      ID  节目名称   母盘号码  删除者  删除时间insert inot B
    select *,@vDeleter,getdate() from A
    where ID=11
    delete from A where ID=11
    参数@vDeleter从页传下来就OK
    意见和这位兄台一样.到程序里取当前的登陆用户,用存储过程返回来.