有一个用户表为Player  有个字段为状态字段.在线或不在线(1/0),还有一个表为用户操作表PlayerOperation.有用户ID字段(PlayerID)和时间字段(theTime),如果时间某一用户在20分钟内没有操作(即在PlayerOperation没有20分钟内的纪录),则把该Player的状态字段(state)置0,该如何做?/
  谢谢.. 我觉得可能要拿触发器或服务做,没写过类似东西..汗..

解决方案 »

  1.   

    触发器没那功能...也不需要触发器...其实不需要state列...sql查询就能做到...Sql Server的计算列更简单...
      

  2.   

    能给个例子吗?我没直接拿sql语句操作过数据库.都是哪NHibernate操作的.
      

  3.   

    以Sql Server为例...CASE WHEN (DATEDIFF(n, theTime, GETDATE())) >20 THEN 0 ELSE 1 END用这条语句做计算列或用在查询中...
      

  4.   

    哦.谢谢.才知道还有sqlserver计算列..我先去查资料..
      

  5.   

    你的思想有问题...为什么“需要”自动运行?是因为我们查询时需要得到这个变化的值,也就是说如果不去查询根本没必要去管它是什么值...它是不是自动运行、有没有自动运行、什么时候运行有什么关系呢?关于计算列...你应该去看Sql Server MSDN文档...