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了。遍历的过程  就看你有什么样的需求,那你就来构造这个变量就是,就看逐行如何改变的

 

posted @ 2012-03-07 14:35  依然乐观  阅读(383)  评论(2编辑  收藏  举报