關系數據庫中的操作會對整個行集起作用。由 SELECT 語句返回的行集包括滿足該語句的 WHERE 子句中條件的所有行。這種由語句返回的完整行集稱為結果集。應用程序,特別是交互式聯機應用程序,並不總能將整個結果集作為一個單元來有效地處理。這些應用程序需要一種機制以便每次處理一行或一部分行。游標就是提供這種機制的對結果集的一種擴展。
游標通過以下方式來擴展結果處理:
允許定位在結果集的特定行。
從結果集的當前位置檢索一行或一部分行。
支持對結果集中當前位置的行進行數據修改。
為由其他用戶對顯示在結果集中的數據庫數據所做的更改提供不同級別的可見性支持。
提供腳本、存儲過程和觸發器中用於訪問結果集中的數據的 Transact-SQL 語句。
請求游標
應用程序不能混合使用這兩種請求游標的方法。已經使用 API 指定游標行為的應用程序不能再執行 Transact-SQL DECLARE CURSOR 語句請求一個 Transact-SQL 游標。應用程序只有在將所有的 API 游標特性設置回默認值後,才可以執行 DECLARE CURSOR。
如果既未請求 Transact-SQL 游標也未請求 API 游標,則默認情況下 SQL Server 將向應用程序返回一個完整的結果集,這個結果集稱為默認結果集。
游標進程
Transact-SQL 游標和 API 游標有不同的語法,但下列一般進程適用於所有 SQL Server 游標:
1、將游標與 Transact-SQL 語句的結果集相關聯,並且定義該游標的特性,例如是否能夠更新游標中的行。
2、執行 Transact-SQL 語句以填充游標。
3、從游標中檢索您想要查看的行。從游標中檢索一行或一部分行的操作稱為提取。執行一系列提取操作以便向前或向後檢索行的操作稱為滾動。
4、根據需要,對游標中當前位置的行執行修改操作(更新或刪除)。
5、關閉游標。