SQL实现对一个字段的循环赋值问题
执行后一直处于正在执行查询.....状态,代码如下declare@iintdeclare@maxidintset@i=0select@maxid=max(id)fromp...
执行后一直处于正在执行查询.....状态,代码如下
declare @i int
declare @maxid int
set @i=0
select @maxid=max(id) from personal
begin
while @i<@maxid
begin
update personal
set Ptrack = @i+ 1
where id=@i+1
set @i=@i+1
while @i=7
begin
set @i=0
end
end
end
id为表personal中一个1开始的自然数字段
想实现给Ptrack字段从1到7循环赋值,但就是一直正在执行查询...... 展开
declare @i int
declare @maxid int
set @i=0
select @maxid=max(id) from personal
begin
while @i<@maxid
begin
update personal
set Ptrack = @i+ 1
where id=@i+1
set @i=@i+1
while @i=7
begin
set @i=0
end
end
end
id为表personal中一个1开始的自然数字段
想实现给Ptrack字段从1到7循环赋值,但就是一直正在执行查询...... 展开
1个回答
展开全部
你这样进入死循环了,修改如下:
declare @i int
declare @maxid int
set @i=0
select @maxid=max(id) from personal
begin
while @i<@maxid
begin
update personal set Ptrack = @i+1 where id=@i+1
set @i=@i+1
if @i=7
begin
set @i=0
break
end
end
end
追问
谢谢!
这样一赋到7就break了
我后面的行还要继续从1开始赋到7循环应该怎么写呢
好纠结
追答
declare @i int
declare @maxid int
set @i=1
select @maxid=max(id) from personal
begin
while @i<@maxid
begin
update personal set Ptrack = @i%7 where id=@i
set @i=@i+1
end
@i初始化值我改成1了,这样看着比较直观,呵呵
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询