ऐसा लगता है कि आप 10 से शुरू होने वाले एम्प्नो को एक बढ़ा हुआ मान असाइन करना चाहते हैं।
ऐसा करने के लिए आप एक सीटीई और row_number() का उपयोग कर सकते हैं। कर्सर की कोई आवश्यकता नहीं है।
;with C as
(
select empno,
9 + row_number() over(order by (select 1)) as NewEmpNo
from emp
)
update C
set empno = NewEmpNo
ऐसा करने के लिए आप कर्सर संस्करण इस तरह दिख सकते हैं।
DECLARE @empno AS INT;
DECLARE @CurEmpNo AS INT;
SELECT @empno = 10;
DECLARE employee_cursor CURSOR FOR
SELECT empno
FROM emp
OPEN employee_cursor;
FETCH NEXT FROM employee_cursor INTO @CurEmpNo
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE emp
SET empno = @empno
WHERE CURRENT OF employee_cursor;
SELECT @empno = @empno + 1;
FETCH NEXT FROM employee_cursor INTO @CurEmpNo
END;
CLOSE employee_cursor;
DEALLOCATE employee_cursor;