sql 根据条件更新记录 case then
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"
补充:数据库,Mssql