首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL 查詢遍歷資料方法二:游標搭配 While 迴圈

     編輯:關於SqlServer

SQL 查詢遍歷資料方法二:游標 + While 迴圈

以 SQL Server 2000 Northwind 資料庫的 Customers 資料表為例,使用 游標 搭配 While 迴圈 遍歷 CompanyName 欄位。

完整程式碼

DECLARE @customer NVARCHAR(50)

DECLARE pcurr CURSOR FOR
SELECT DISTINCT CompanyName FROM Customers

OPEN pcurr
FETCH NEXT FROM pcurr INTO @customer

WHILE (@@FETCH_STATUS = 0)
BEGIN
    PRINT @customer
    FETCH NEXT FROM pcurr INTO @customer
END

CLOSE pcurr
DEALLOCATE pcurr

執行結果(前 30 筆)

Alfreds Futterkiste
Ana Trujillo Emparedados y helados
Antonio Moreno Taquería
Around the Horn
Berglunds snabbköp
Blauer See Delikatessen
Blondesddsl père et fils
Bólido Comidas preparadas
Bon app'
Bottom-Dollar Markets
B's Beverages
Cactus Comidas para llevar
Centro comercial Moctezuma
Chop-suey Chinese
Comércio Mineiro
Consolidated Holdings
DIE Wandernde Kuh
Drachenblut Delikatessen
Du monde entier
Eastern Connection
Ernst Handel
Familia Arquibaldo
FISSA Fabrica Inter. Salchichas S.A.
Folies gourmandes
Folk och fä HB
France restauration
Franchi S.p.A.
Frankenversand
Furia Bacalhau e Frutos do Mar
Galería del gastrónomo
...
(共 91 筆記錄)

關鍵點說明

  • @@FETCH_STATUS = 0 表示擷取成功,迴圈持續直到無資料(-1)或錯誤(-2)
  • 務必在迴圈結束時 CLOSE 並 DEALLOCATE 游標釋放資源
  • 游標適合逐筆處理邏輯複雜的資料,但效能通常不如集合式操作
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved