有一个表结构,工单号,项目号,时间,数量,单价,ukid,更改人,更改时间,更改程序.
数据如下:    9091    210   2009/10/12,120,123456,donf,2009/10/12,P412
             9091,   220,  2009/10/12,140,123456,donf,2009/10/12,P412除了UKID字段外,其他的数据都是对的,只有UKID字段的值不对.
要更新UKID,如何只更改第一条记录为123后,下一条就比上一条加1?
前提: 不更改表结构.谢谢

解决方案 »

  1.   

    declare @ukid int 
    set @ukid=122
    update tb set ukid=@ukid ,@ukid=@ukid+1
      

  2.   

    ---------------------------------------------
    --> Author : jinjazzli
    --> Target : ---->1000
    --> Date   : 2009-12-10 15:36:00
    --> Version: SQL Server 2005
    ---------------------------------------------
        
    --> 测试数据: @tb
    declare @tb table (工单号 int,项目号 int,时间 datetime,数量 int,单价 int,ukid varchar(4),更改人 datetime,更改时间 varchar(4),更改程序 sql_variant)
    insert into @tb
    select 9091,210,'2009/10/12',120,123456,'donf','2009/10/12','P412',null union all
    select 9091,220,'2009/10/12',140,123456,'donf','2009/10/12','P412',null
    declare @n int
    set @n=122update @tb
    set ukid=@n,@n=@n+1select * from @tb
    工单号         项目号         时间                      数量          单价          ukid 更改人                     更改时间 更改程序
    ----------- ----------- ----------------------- ----------- ----------- ---- ----------------------- ---- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    9091        210         2009-10-12 00:00:00.000 120         123456      123  2009-10-12 00:00:00.000 P412 NULL
    9091        220         2009-10-12 00:00:00.000 140         123456      124  2009-10-12 00:00:00.000 P412 NULL(2 行受影响)
      

  3.   


    declare @ukid int
    set @ukid=122
    update tb set @ukid=@ukid+1, ukid=@ukid
      

  4.   

    declare @ukid int
    set @ukid=122
    update tb set @ukid=@ukid+1, ukid=@ukid