应该是触发器问题

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

7 个解决方案

#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


还是不明白什么意思/我这个是要让它自动运行的,计算列是什么东东??

#6


你的思想有问题...

为什么“需要”自动运行?是因为我们查询时需要得到这个变化的值,也就是说如果不去查询根本没必要去管它是什么值...它是不是自动运行、有没有自动运行、什么时候运行有什么关系呢?

关于计算列...你应该去看Sql Server MSDN文档...

#7


嗯.呵呵.谢谢

#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


还是不明白什么意思/我这个是要让它自动运行的,计算列是什么东东??

#6


你的思想有问题...

为什么“需要”自动运行?是因为我们查询时需要得到这个变化的值,也就是说如果不去查询根本没必要去管它是什么值...它是不是自动运行、有没有自动运行、什么时候运行有什么关系呢?

关于计算列...你应该去看Sql Server MSDN文档...

#7


嗯.呵呵.谢谢