在SQL Server 2005中,我想记录用户登录后online
列首次从1
更改为0
的当前时间。online
列每5-10分钟更新一次(这意味着,我的网络应用每隔5-10分钟将online
列更新为1
,直到用户登录网站为止。我想仅在列第一次更改为1
时记录时间。
我必须从上面步骤1记录的时间开始每隔一小时更新一次reputation
列,直到同一用户保持登录状态,并在{{1}后立即停止更新reputation
}}更改为online
怎么做?我对构建查询和触发器的知识非常薄弱。
答案 0 :(得分:0)
就个人而言,我会通过在线旁边添加第二位列来解决这个问题,以及时间记录或类似内容。
基本上逻辑看起来像这样。
Update users set online = 1
update users set onlinesince = getdate()
where online = 1 and timerecorded = 0
update users set reputation = reputation + 1
where online = 1 and timerecorded = 1
当你开始设置online = 0时,请确保设置两个标志。