SqlServer 游標逐行更新數據,根據上一行的數據來更新當前行


工作中用到的記錄一下,游標的詳細定義及說明請百度


--游標格式化數據 DECLARE cursor_jxsmb CURSOR FOR --定義一個游標 SELECT F0 FROM dbo.JXSMB2019; --定於游標的數據源 OPEN cursor_jxsmb --打開游標 DECLARE @LAST NVARCHAR(4000),@THIS NVARCHAR(4000) --定義兩個變量,用來保存上一行和當前行的數據 FETCH NEXT FROM cursor_jxsmb INTO @THIS --設置@this 為當前行的數據 WHILE @@FETCH_STATUS=0 --判斷游標是否為讀取失敗,讀取失敗則為-1 代表最后一行 BEGIN IF LEN(@THIS)<>0 --判斷當前讀取行字段是否為空 BEGIN SET @LAST=@THIS --如果不為空則不更新,並且設置@last為當前行的數據 --PRINT @LAST END ELSE BEGIN --如果為空則更新當前行的數據為上一行 UPDATE JXSMB2019 SET F0=@LAST WHERE CURRENT OF cursor_jxsmb --更新數據,where 只更新當前游標所在行 --PRINT @LAST END FETCH NEXT FROM cursor_jxsmb INTO @THIS     --繼續讀取下一行數據 END CLOSE cursor_jxsmb --關閉游標 DEALLOCATE cursor_jxsmb --釋放游標

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM