sql 根据条件更新记录 case then

作者:简简单单 2010-06-25

sql 根据条件更新记录 case then第一个利用存储过程来做

declare @str varchar(500)
set @str=@str+'update 表名'
if state=1
  set @str=@str+' set state=0'
else 
  set @str=@str+' set state=1'

set @str=@str+' where moduleroleid='1'
exec(@str)

//

update 表名 set state=0 where moduleroleid="1" and state=1
update 表名 set state=1 where moduleroleid="1" and state=0
-- case..when
update 表名 case when state=1 then set state=0 else set state=1 end where moduleroleid='1'
-- if..else
if exists select 1 from 表名 where moduleroleid="1" and state=1
    update 表名 set state=0 where moduleroleid="1" and state=1
else   
    update 表名 set state=1 where moduleroleid="1" and state=0
end
-- 这主意不错:l
update 表名 set state=(state+1)%2 where moduleroleid="1"

相关文章

精彩推荐