sql server如何批量更新数据。

一张表,根据id更新value,当然有多个id对应着多个value。。每个value值都是没有规律的。

update è¡¨å set value=case when id=1 then ä¸€ä¸ªå€¼
                           when id=2 then ä¸€ä¸ªå€¼ 
                            when id=3 then ä¸€ä¸ªå€¼ else value 
                                             end

上边就是举个例子,意思是,当id=1时,把value设定个值,当id=2时,value设定另一个值,依次类推,不需要更改的保留原来的value值,最后以end结尾

追问

有没有方法绕过那些不需要修改的id呢?感觉就是整张表都更新了一遍。。效率有点慢

追答update è¡¨å set value=case when id=1 then ä¸€ä¸ªå€¼ 
when id=2 then ä¸€ä¸ªå€¼     
when id=3 then ä¸€ä¸ªå€¼ else value  end     
where id in (1,2,3)

 

后边加个where 条件就绕过去了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-11
declare @cnt int
select @cnt = count(1) from A
while(@cnt > 0)
begin
--更新
set @cnt = @cnt - 1
end
做个临时表放置标识字段跟状态,对满足某个状态的批量update。
索引可以优化查询,update跟delete这种操作反而会破坏索引。
第2个回答  2013-09-09
可以根据你的需求写一个存储过程或者触发器,把你的更新内容value写在一个串或者什么里面存储,每次就改这个位置
第3个回答  2013-09-09
把这张表;也导入SQL;再用来更新

UPDATE 要根据的表 SET 更新的字段 FROM 要更新的表 A LEFT 导入SQL的表 AS B
ON A.ID =B.ID
第4个回答  2013-09-09
用Excel辅助,请参考:

如有疑问,请追问。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网