declare @i intcreate table abcd (id int,i varchar(5),d varchar(5))insert abcd
select 0,'1','aa'
union all
select 0,'2','aa'
union all
select 0,'3','aa'
union all
select 0,'4','aa'
union all
select 0,'5','aa'
union all
select 0,'6','aa'
union all
select 0,'7','aa'
union all
select 0,'8','aa'select * from abcd select @i --查询@i的数值update abcd
set id=@i,@i=case when d='aa' then 1 else @i+1 end select * from abcd drop table abcd
在select @i --查询@i的数值
为什么在UPDATE的时候set id=@i,表ABCD里面没有一个NULL值吗?不是从左到右吗,然后再去更新@I的值,再出更新第二条数据!
select 0,'1','aa'
union all
select 0,'2','aa'
union all
select 0,'3','aa'
union all
select 0,'4','aa'
union all
select 0,'5','aa'
union all
select 0,'6','aa'
union all
select 0,'7','aa'
union all
select 0,'8','aa'select * from abcd select @i --查询@i的数值update abcd
set id=@i,@i=case when d='aa' then 1 else @i+1 end select * from abcd drop table abcd
在select @i --查询@i的数值
为什么在UPDATE的时候set id=@i,表ABCD里面没有一个NULL值吗?不是从左到右吗,然后再去更新@I的值,再出更新第二条数据!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货