日期:2014-05-18  浏览次数:20575 次

大家给看个触发器吧。
有个登录系统的用户表,想记录每个用户登陆和退出系统的时间。

用户表 

表名:授权

1 编号 varchar 50 1
0 姓名 varchar 50 1
0 口令 varchar 50 1
0 权限 varchar 1000 1
0 id int 4 0
0 WorkAt varchar 50 1

workat 表示登陆机器名,退出时清除。

登陆记录表

表名:授权_登录记录

3 id int 4 0
0 lognum varchar 50 1
0 logname varchar 50 1
0 workat varchar 50 1
0 logindate datetime 8 1
0 logoutdate datetime 8 1


用户登陆后,通过 授权表 中的 workat字段触发,写入一条登陆记录。退出的时候更新 logoutdate 字段。

------解决方案--------------------
SQL code
create   trigger   trigger_workat 
on   [用户表] 
after   update 
as 
if   update(workat) 
begin 
  if   inserted.workat <> ' ' 
      插入记录到[用户登陆表] 
  else 
      更新[用户登陆表]的logoutdate字段 
end