本文系統整理 SQL Server 游標的核心定義、兩大組成元素、三層分類架構,以及 Transact-SQL 游標在儲存程序與觸發器中的標準操作流程,為開發人員建立完整的游標認知框架。
游標 是一種資料處理方法,提供在結果集中**逐列或多列、前進或後退**導覽的能力。可視為一個指標,指向結果集任意位置,允許對特定位置資料進行讀取、更新或刪除操作。
SELECT 陳述式定義所返回的資料列集合。| 類別 | 執行位置 | 典型應用 |
|---|---|---|
| API 伺服器游標 | 伺服器端 | 用戶端透過 ODBC/OLE DB/ADO API 呼叫,伺服器負責游標管理 |
| Transact-SQL 游標 | 伺服器端 | T-SQL 批次、儲存程序、觸發器中使用 DECLARE CURSOR |
| API 用戶端游標 | 用戶端 | 結果集快取於用戶端記憶體,僅支援靜態與只進型態 |
前兩者統稱「伺服器游標」,資源消耗在伺服器;用戶端游標將負載轉移至客戶端。
tempdb,**永遠唯讀**。FETCH NEXT 循序讀取,不支援捲動。tempdb,成員與順序固定。DECLARE CURSOR 綁定 SELECT 並定義屬性 (SCROLL, READ_ONLY 等)。OPEN 執行查詢填充游標,位置指向第一列前。FETCH INTO 逐列取出資料至變數 (不支援區塊提取)。CLOSE 釋放結果集鎖定,保留定義可重開。DEALLOCATE 徹底釋放所有資源。僅支援 靜態 與 只進 兩種類型,適合小型結果集離線處理,不適用高併發大數據量場景。