Как использовать курсор с обновлением статуса? - PullRequest
0 голосов
/ 03 марта 2020

Моя цель - update некоторые записи с диапазоном чисел (4987-4993), первая запись должна быть с номером 4987, следующая 4988..et c 'и когда условие l oop равно @ a = 4993 это должно прекратиться, я попытался использовать курсор SQL, но я обновил каждую вещь с тем же номером (4992) .... что мне не хватает?

DECLARE @a AS INT;
DECLARE @b AS INT;

select @a = 4987

declare myCursor cursor for 
select  modelcode from model
where try_cast(modelcode as int) > 1600 and try_cast(modelcode as int) <1700

open myCursor

fetch next from  myCursor into @b

while @a < 4993
   begin
     update model
     set ModelCode = @a 
     where try_cast(modelcode as int) < 1659

     select @a = @a+1
     fetch next from myCursor into @b
     end;
close myCursor

DEALLOCATE myCursor;  

1 Ответ

0 голосов
/ 03 марта 2020

Ваше заявление update не зависит от @b. Вам нужно сделать что-то вроде этого:

 update model
 set ModelCode = @a 
 where modelcode = @b;
...