在SQL Server中更新语句和游标

时间:2015-09-29 21:46:45

标签: sql-server

我对以下更新声明感到困惑。例如,如果@num = 1ntt = 4。在使用游标时,我想使用num的初始值.i.e是1.但是我收到的值增加了5.我做错了什么?任何帮助谢谢,我很感激。

UPDATE #temp
SET num = @num, 
    @num = @num + ntt

DECLARE cur CURSOR LOCAL FORWARD_ONLY DYNAMIC FOR 
    SELECT yr, id, num FROM #temp

OPEN cur
FETCH cur INTO @yr, @id, @num 

WHILE @@FETCH_STATUS = 0
     BEGIN
     UPDATE #TEMP2
     SET TRAN_ID = @num,
         @num = @num +1
     WHERE ...........

     FETCH cur INTO @yr, @id, @num
END

1 个答案:

答案 0 :(得分:0)

UPDATE会执行您在SET

中确定的两件事
  1. 将#temp中的num列更新为@num
  2. 将@num更新为@num + ntt