表A,字段id,name;
所有记录的id字段是空的,我想写个update语句,让第一条记录id=1,第二条id=2...第n条id=n。
请问该怎么写?

解决方案 »

  1.   


    --直接ssms里把id属性改为自增
      

  2.   

    update 
     id
    set 
     id=b.px
    from
     a,
     (select px=row_number()over(order by getdate()),* from a)b
    where 
      a.name=b.name
      

  3.   

    declare @i int
    set @i=1
    update tb set id=@i,@i=@i+1
      

  4.   

    ;with cte as
    (
    select
    rowno = row_number() over(order by getdate()),  --order by 后面跟你想要的排序结果
    *
    from table_name
    )
    update cte
    set id = rowno
      

  5.   

    update a 
    set a.id=a.RowID
    from 
    (select Row_Number() over (order by id) as RowID,* from 表名) a注意:要sql2005以上版本
      

  6.   

    呵呵,那以前的记录也没法改啊,只是对以后新增的起作用。我想知道这种update语句怎么写。
      

  7.   

    UPDATE A SET id=IDENTITY(INT,1,1)
      

  8.   

    饿,只能SELECT INTO 用。
      

  9.   

    SQL code
    declare @i int
    set @i=0 //要从0开始,要不然执行的话,第一个就是2了
    update tb set id=@i,@i=@i+1
      

  10.   


    update 
     id
    set 
     id=b.no
    from
     a,
     (select no=row_number()over(order by getdate()) from a)b
    where 
      a.name=b.name