sql server如何批量更新数据。
一张表,根据id更新value,当然有多个id对应着多个value。。每个value值都是没有规律的。...
一张表,根据id更新value,当然有多个id对应着多个value。。每个value值都是没有规律的。
展开
5个回答
展开全部
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 条件就绕过去了
展开全部
declare @cnt int
select @cnt = count(1) from A
while(@cnt > 0)
begin
--更新
set @cnt = @cnt - 1
end
做个临时表放置标识字段跟状态,对满足某个状态的批量update。
索引可以优化查询,update跟delete这种操作反而会破坏索引。
select @cnt = count(1) from A
while(@cnt > 0)
begin
--更新
set @cnt = @cnt - 1
end
做个临时表放置标识字段跟状态,对满足某个状态的批量update。
索引可以优化查询,update跟delete这种操作反而会破坏索引。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以根据你的需求写一个存储过程或者触发器,把你的更新内容value写在一个串或者什么里面存储,每次就改这个位置
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把这张表;也导入SQL;再用来更新
UPDATE 要根据的表 SET 更新的字段 FROM 要更新的表 A LEFT 导入SQL的表 AS B
ON A.ID =B.ID
UPDATE 要根据的表 SET 更新的字段 FROM 要更新的表 A LEFT 导入SQL的表 AS B
ON A.ID =B.ID
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询