有一个表结构,工单号,项目号,时间,数量,单价,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?
前提: 不更改表结构.谢谢
数据如下: 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?
前提: 不更改表结构.谢谢
set @ukid=122
update tb set ukid=@ukid ,@ukid=@ukid+1
--> 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 行受影响)
declare @ukid int
set @ukid=122
update tb set @ukid=@ukid+1, ukid=@ukid
set @ukid=122
update tb set @ukid=@ukid+1, ukid=@ukid