1、使用identity列
alter table yourtable add tel_orer int identity(1,1)

解决方案 »

  1.   

    DECLARE cur scroll CURSOR
    FOR SELECT tel_tableid,tel_order 
    FROM sheet1
    FOR UPDATE 
    OPEN cur
    fetch next from cur--初始就要给游标赋直 
    declare @row int,@i int
    set @i=0
    --set @row=@@cursor_rows
    --while @row>0-------------此处判断用游标的@@fetch_status全局变量就可以了
    while (@@fetch_status<>-1)
    begin
      set @i=@i+1   
      update sheet1 set tel_order=@i where current of cur
    ---set @row=@row-1
      fetch next from cur 
    end 
    close cur
    deallocate cur
      

  2.   

    以上该了第二个问题可以解决了,第一个问题,定义scrool滚动游标的,
    定义成update类型没有成功,还是read-only型,所以后面要再游标上修改数据就会出错。
    具体原因我忘了,我也遇到过,后来我调好了,忘了如何调的呢。记得这里是个逻辑上的问题,
    看似合理其实不合理。
      

  3.   

    --动态游标  dynamic
    declare @row int,@i int
    select @i=0
    DECLARE cur dynamic CURSOR FOR SELECT tel_tableid,tel_order FROM sheet1 FOR UPDATE of tel_order
    OPEN cur
    fetch next from cur
    while (@@fetch_status = 0)
    begin
      set @i=@i+1   
      update sheet1 set tel_order=@i where current of cur
      fetch next from cur 
    end 
    close cur
    deallocate cur
      

  4.   

    如果你用游标就是这了实现在对tel_orer进行增量赋值,那是完全没有必要的你可以直接对tel_orer这个字段的设成identity(1,1)就可以了