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循环赋值,但就是一直正在执行查询......
展开
 我来答
华夏日长兴
推荐于2016-05-08 · TA获得超过9592个赞
知道大有可为答主
回答量:6305
采纳率:85%
帮助的人:3698万
展开全部
你这样进入死循环了,修改如下:
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了,这样看着比较直观,呵呵
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式