【www.gdgbn.com--今天更新】

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"

本文来源:http://www.gdgbn.com/jintiangengxin/25484/