sql server如何批量更新数据。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 条件就绕过去了
参考技术A declare @cnt intselect @cnt = count(1) from A
while(@cnt > 0)
begin
--更新
set @cnt = @cnt - 1
end
做个临时表放置标识字段跟状态,对满足某个状态的批量update。
索引可以优化查询,update跟delete这种操作反而会破坏索引。 参考技术B 可以根据你的需求写一个存储过程或者触发器,把你的更新内容value写在一个串或者什么里面存储,每次就改这个位置 参考技术C 把这张表;也导入SQL;再用来更新
UPDATE 要根据的表 SET 更新的字段 FROM 要更新的表 A LEFT 导入SQL的表 AS B
ON A.ID =B.ID 参考技术D 用Excel辅助,请参考:http://zhidao.baidu.com/question/534961343.html?oldq=1
如有疑问,请追问。
以上是关于sql server如何批量更新数据。的主要内容,如果未能解决你的问题,请参考以下文章
sql语句将Excel中的一列批量更新到sql server中的一列中?