SQL Server遊標使用快速上手

來源:互聯網
上載者:User

使用遊標有四種基本的步驟:聲明遊標、開啟遊標、提取資料、關閉遊標

如下面SQL樣本所示:

 

-- =============================================
-- Author:        <搏擊的小船>
-- Create date: <2011-04-19>
-- Description:    <SQL SERVER 遊標DEMO>
-- =============================================

--暫存資料表
CREATE TABLE ##TempTB
(
ID INT IDENTITY,
ColA VARCHAR(50),
ColB VARCHAR(50)
)
DECLARE @i INT=0;
WHILE(@i<10)
BEGIN
    INSERT INTO ##TempTB 
            (ColA, ColB )
    VALUES  ( 
              '測試欄位ColA'+CAST(@i AS VARCHAR(10))
              ,
              '測試欄位ColB'+CAST(@i AS VARCHAR(10))
              )              
         SET @i=@i+1;
END
--SELECT * FROM ##TempTB;

--定義3個變數來接收遊標遍曆的值
DECLARE @a VARCHAR(50),
        @b VARCHAR(50),
        @c VARCHAR(50);

--申明遊標並填充資料
DECLARE cur CURSOR FOR SELECT * FROM ##TempTB
--開啟遊標
OPEN cur
--取下一條資料填充
FETCH NEXT FROM cur INTO @a,@b,@c
SELECT @a,@b,@c;
--@@FETCH_STATUS |  0 提取成功; 1語句失敗或行不在結果集中;2提取的行不存在
WHILE(@@FETCH_STATUS=0)
BEGIN
    --to do sth//
    FETCH NEXT FROM cur INTO @a,@b,@c;
    SELECT @a,@b,@c;    
END    
--關閉遊標
CLOSE cur
--刪除遊標資源
DEALLOCATE cur    

DROP TABLE ##TempTB;    

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.