龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Sql Server开发 >

sql 根据条件更新记录 case then

时间:2013-01-03 18:08来源:未知 作者:admin 点击:
分享到:
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'

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"

精彩图集

赞助商链接