今天心情好 做数据填充 就是造假数据 遇到了一个问题 请教高手~
ps:CREATE TABLE [AA] (
[id] [bigint] IDENTITY (1, 1) NOT NULL ,
[id1] [int] NULL ,
[id2] [int] NULL ,
CONSTRAINT [PK_AA] PRIMARY KEY  CLUSTERED 
(
[id]
)  ON [PRIMARY] 
) ON [PRIMARY]
GO
insert into AA(id1,id2) values( '1','1' )
insert into AA(id1,id2) values( '2','1' )
insert into AA(id1,id2) values( '3','1' )
insert into AA(id1,id2) values( '4','1' )
insert into AA(id1,id2) values( '5','1' )
insert into AA(id1,id2) values( '6','1' )
insert into AA(id1,id2) values( '7','1' )……
....................................................
在表AA中 我突然觉得 id2 字段里面的数据需要改变
由于数据太多 手动很麻烦 就像用语句来修改数据将id2
中的字段变成(比如)有序的1234567
传统的我觉得应该这样写
///////////////////////////////////
declare @i int 
set @i=1
while @i<=1
begin
update AA set id2 =@i
set @i=@i+1
end
////////////////////////可这样写好像在添加数据以前就循环完了 不id2
全是7777777遇到这种情况 你们怎么办  呵呵

解决方案 »

  1.   

    declare @i int
    set @i=0
    update tablename set id2=@i,@i=@i+1
      

  2.   

    to:zheninchangjiang(徐若涵)
    呵呵 这是个巧合 要是我不是int 而是其他的类型呢
    就是不借用其余列的条件 能更新么?~也许是我没有说明白比如一个datetime类型的id2 好像就不能这样写了吧
      

  3.   

    declare @i int 
    set @i=1
    while @i<=条件
    begin
    update AA set id2 =@i
    set @i=@i+1
    end
    我是想整个循环来更新数据~呵呵 那样以后再制造仿真数据的时候方便~~
      

  4.   

    with datetime you can :
    declare @i datetime,@j int
    set @i=getdate();set @j=0
    update tablename set id2=@i,@j=@j+1,@i=dateadd(day,@j,@i)