sql update 小总结
今天和师父聊天,师父问了一个sql,延伸出来update遍历的问题。
记录下师父教的东西。
- --假如有这样一张表,里面有个字段是序号,本来序号是1、2、3这样递增的
--但是 这时候,这个序号乱了,要求重新排序
declare @T table(Num int,Name varchar(10))
insert into @T
select 1,'W'
union
select 2,'WW2'
union
select 5,'WW3'
union
select 3,'WW4'
union
select 7,'WW5'
union
select 8,'WW6'
union
select 4,'WW7' - 我的第一想法是,可以声明变量来解决这个问题,然后师父让我试下
- declare @num int
- set @num=0
- update @T set num=@num+1 where num=@num
- 师父说,update 的用法你这里以为只可以给列赋值,它也可以给变量复制
- declare @num int
- set num=0
- update @num=@num+1,num=@num
- OK了。遍历的过程 就看你有什么样的需求,那你就来构造这个变量就是,就看逐行如何改变的