日期:2014-05-18  浏览次数:20617 次

一个 小小的大问题 sql的update 我懵了~
declare   @i   int  
set   @i=1  
while   @i <=90  
begin  
update   conference12   set   type_code=   @i  
set   @i=@i+1  
end  

为什么我在库里看见更新的全部是90   ????汗水~

------解决方案--------------------
declare @i int
set @i=1
while @i <=90
begin
update conference12 set type_code= @i
where 条件 --加个条件试试
set @i=@i+1
end


------解决方案--------------------
当然都是90了,循环完后@i的值 变为90 ,再执行更新update conference12 set type_code= @i 所有的type_code 值都是90

------解决方案--------------------
where没写,每次都全部更新。最后一次更新是90
------解决方案--------------------
update语句执行了90次,每次的结果都不同,最后一次是90,这段代码的逻辑有问题
------解决方案--------------------
跟ID
declare @i int
set @i=1
while @i <=90
begin
update conference12 set type_code= @i where id=@i
set @i=@i+1
end

这样ID和code都一样了。谁有好办法
------解决方案--------------------
你先要说明下你的目的是什么啊.如果只是希望将每行的type_code字段依次改变,那么就插入一个临时字段然后用上面的方法哦
------解决方案--------------------
是可以循环,可以你先把结果改成1,2....90,最后就是90了,中间的结果不可能留住的