批量执行单条update语句,如何实现获取受影响行的总数? 200
如以下这一组SQL语句updatetableAsetNum=2whereID=1updatetableAsetNum=3whereID=2updatetableAsetN...
如以下这一组SQL语句
update tableA set Num=2 where ID=1
update tableA set Num=3 where ID=2
update tableA set Num=4 where ID=3
update tableA set Num=5 where ID=4
update tableA set Num=6 where ID=5
返回以下结果:
(1 行受影响)
(1 行受影响)
(1 行受影响)
(1 行受影响)
(0 行受影响)(由于ID为5的行已被删除)
现想通过添加一条语句在最后运行,得出(共4 行受影响)这个结果,能否实现?
由于实际操作中,需要一次批量运行这样的语句超过几千条。 展开
update tableA set Num=2 where ID=1
update tableA set Num=3 where ID=2
update tableA set Num=4 where ID=3
update tableA set Num=5 where ID=4
update tableA set Num=6 where ID=5
返回以下结果:
(1 行受影响)
(1 行受影响)
(1 行受影响)
(1 行受影响)
(0 行受影响)(由于ID为5的行已被删除)
现想通过添加一条语句在最后运行,得出(共4 行受影响)这个结果,能否实现?
由于实际操作中,需要一次批量运行这样的语句超过几千条。 展开
展开全部
--Update用循环做得话
declare @count int
while 1=1
begin
update table set a=1
set @count+=@@rowcount
end
select @count
--@@rowcount是受影响行数,进行累加就可以了
追问
不行,以上只是举例,实际运行中,update的条件和修改值都没有规律可循,不能用循环来写,我现在已用文本编辑工具把这几千条update语句生成好只等运行了。
追答
你要最后的数据做什么呢,如果取值的话,建一个测试表,用Update触发器,每修改一条记录的时候就修改一次测试表中的数据,可以完美解决
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询