sql server 游標的基本用法


DECLARE @Id NVARCHAR(MAX) DECLARE @UserName NVARCHAR(MAX) DECLARE @Password NVARCHAR(MAX) DECLARE @NickName NVARCHAR(MAX) create table #tmp (Id NVARCHAR(MAX),UserName NVARCHAR(MAX),Password NVARCHAR(MAX),NickName NVARCHAR(MAX)) --建立臨時數據表 --聲明一個游標mycursor,select語句中參數的個數必須要和從游標取出的變量名相同 DECLARE mycursor CURSOR FOR SELECT Id,UserName,Password,NickName FROM dbo.Users OPEN mycursor --打開游標 --從游標里取出數據賦值到我們剛才聲明的變量中(移動游標指向到第一條數據,提取第一條數據存放在變量中) FETCH NEXT FROM mycursor INTO @Id, @UserName,@Password,@NickName --判斷游標的狀態 -- 0 fetch語句成功 ---1 fetch語句失敗或此行不在結果集中 ---2 被提取的行不存在 WHILE (@@fetch_status = 0) --如果上一次操作成功則繼續循環 BEGIN --顯示出我們每次用游標取出的值 --print (@Id+'--------'+@UserName+'--------'+@Password+'----'+@NickName) --條件判斷 if (@Id>=10) begin INSERT INTO #tmp(Id,UserName,Password,NickName) VALUES(@Id,@UserName,@Password,@NickName) end --用游標去取下一條記錄(繼續取下一行數據) FETCH NEXT FROM mycursor INTO @Id,@UserName,@Password,@NickName END CLOSE mycursor --關閉游標 DEALLOCATE mycursor --撤銷游標(釋放資源 ) SELECT * FROM #tmp; --查詢臨時表 DROP TABLE #tmp --刪除臨時表

 

DECLARE @Id NVARCHAR(MAX) DECLARE @UserName NVARCHAR(MAX)  DECLARE @Password NVARCHAR(MAX) DECLARE @NickName NVARCHAR(MAX)  create table #tmp (Id NVARCHAR(MAX),UserName NVARCHAR(MAX),Password NVARCHAR(MAX),NickName NVARCHAR(MAX))  --建立臨時數據表 
--聲明一個游標mycursor,select語句中參數的個數必須要和從游標取出的變量名相同    DECLARE mycursor CURSOR  FOR      SELECT Id,UserName,Password,NickName FROM dbo.Users        OPEN mycursor  --打開游標       --從游標里取出數據賦值到我們剛才聲明的變量中(移動游標指向到第一條數據,提取第一條數據存放在變量中)    FETCH NEXT FROM mycursor INTO @Id, @UserName,@Password,@NickName        --判斷游標的狀態    -- 0 fetch語句成功        ---1 fetch語句失敗或此行不在結果集中        ---2 被提取的行不存在    WHILE (@@fetch_status = 0)   --如果上一次操作成功則繼續循環    BEGIN                --顯示出我們每次用游標取出的值             --print (@Id+'--------'+@UserName+'--------'+@Password+'----'+@NickName)        --條件判斷        if (@Id>=10)        begin            INSERT INTO #tmp(Id,UserName,Password,NickName) VALUES(@Id,@UserName,@Password,@NickName)         end        --用游標去取下一條記錄(繼續取下一行數據)        FETCH NEXT FROM mycursor INTO @Id,@UserName,@Password,@NickName       END  CLOSE mycursor --關閉游標     DEALLOCATE mycursor --撤銷游標(釋放資源 )   SELECT * FROM #tmp; --查詢臨時表 DROP TABLE #tmp --刪除臨時表


免責聲明!

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



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