日期:2014-05-17  浏览次数:20420 次

求请教一遍历表存储过程
本帖最后由 wdxgdiy 于 2012-12-12 11:00:43 编辑

首先有两个权限表和一个用户表

玩家权限
ID    NAME
0     无
1     VIP玩家

管理权限
ID    NAME
0     无
1     超级管理员

用户权限表
ID    NAME       玩家权限id      管理权限id        玩家权限到期时间
1     张三       1               0                 2013-1-1
2     李四       0               1                 null
3     王五       1               0                 2012-1-1
4     朱六       1               1                 2012-1-1

要求遍历表
当玩家权限到期时(不等于null 且小于当前时间) 判断有无管理权限(是否为0)
若无 则删除此条记录
若有 则更改用户表 玩家权限id为0  即无权限, 玩家权限到期时间更改为null

------解决方案--------------------
delete from 用户权限表 where (玩家权限到期时间 is null or 玩家权限到期时间>getdate()) and 管理权限id=0
update t 玩家权限id=0,玩家权限到期时间=null from 用户权限表 as t  (玩家权限到期时间 is null or 玩家权限到期时间>getdate()) and 管理权限id=1