程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> sql server 2000 游標用法

sql server 2000 游標用法

編輯:關於SqlServer

DECLARE CURSOR (T-SQL)創建游標

定義 Transact-SQL 服務器游標的屬性,例如游標的滾動行為和用於生成游標所操作的結果集的查詢。DECLARE CURSOR 接受基於 SQL-92 標准的語法和使用一組 Transact-SQL 擴展插件的語法。

Transact-SQL 語法約定

語法

SQL 92 Syntax
DECLARE cursor_name [ INSENSITIVE ] [ SCROLL ] CURSOR 
     FOR select_statement 
     [ FOR ...{ READ ONLY | UPDATE [ OF column_name [ ,...n ] ] } ]
[;]
Transact-SQL Extended Syntax
DECLARE cursor_name CURSOR [ LOCAL | GLOBAL ]
     [ FORWARD_ONLY | SCROLL ]
     [ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ]
     [ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ]
     [ TYPE_WARNING ]
     FOR select_statement 
     [ FOR UPDATE [ OF column_name [ ,...n ] ] ]
[;]

參數


cursor_name
所定義的 Transact-SQL 服務器游標的名稱。cursor_name 必須符合標識符規則。有關標識符規則的詳細信息,請參閱使用標識符作為對象名稱。

INSENSITIVE
定義一個游標,以創建將由該游標使用的數據的臨時復本。對游標的所有請求都從 tempdb 中的這一臨時表中得到應答;因此,在對該游標進行提取操作時返回的數據中不反映對基表所做的修改,並且該游標不允許修改。使用 SQL-92 語法時,如果省略 INSENSITIVE,則已提交的(任何用戶)對基礎表的刪除和更新都反映在後面的提取中。

SCROLL
指定所有的提取選項(FIRST、LAST、PRIOR、NEXT、RELATIVE、ABSOLUTE)均可用。如果未在 SQL-92 DECLARE CURSOR 中指定 SCROLL,則 NEXT 是唯一支持的提取選項。如果也指定了 FAST_FORWARD,則不能指定 SCROLL。

select_statement
定義游標結果集的標准 SELECT 語句。在游標聲明的 select_statement 內不允許使用關鍵字 COMPUTE、COMPUTE BY、FOR BROWSE 和 INTO。

Microsoft 如果 select_statement 中的子句與所請求的游標類型的功能有沖突,則 SQL Server 會將游標隱式轉換為其他類型。有關詳細信息,請參閱使用隱式游標轉換。

READ ONLY
禁止通過該游標進行更新。在 UPDATE 或 DELETE 語句的 WHERE CURRENT OF 子句中不能引用游標。該選項優於要更新的游標的默認功能。

UPDATE [OF column_name [,…n]]
定義游標中可更新的列。如果指定了 OF column_name [,…n],則只允許修改列出的列。如果指定了 UPDATE,但未指定列的列表,則可以更新所有列。

cursor_name
所定義的 Transact-SQL 服務器游標的名稱。cursor_name 必須符合標識符規則。有關標識符規則的詳細信息,請參閱使用標識符作為對象名稱。

LOCAL
指定對於在其中創建的批處理、存儲過程或觸發器來說,該游標的作用域是局部的。該游標名稱僅在這個作用域內有效。在批處理、存儲過程、觸發器或存儲過程 OUTPUT 參數中,該游標可由局部游標變量引用。OUTPUT 參數用於將局部游標傳遞回調用批處理、存儲過程或觸發器,它們可在存儲過程終止後給游標變量分配參數使其引用游標。除非 OUTPUT 參數將游標傳遞回來,否則游標將在批處理、存儲過程或觸發器終止時隱式釋放。如果 OUTPUT 參數將游標傳遞回來,則游標在最後引用它的變量釋放或離開作用域時釋放。

GLOBAL
指定該游標的作用域對來說連接是全局的。在由連接執行的任何存儲過程或批處理中,都可以引用該游標名稱。該游標僅在斷開連接時隱式釋放。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved