一个 小小的大问题 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了,中间的结果不可能留住的