当前位置:数据库 > SQLServer >>

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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,