微软SQL Server数据库的两种请求游标
游標(biāo)(cursor)是系統(tǒng)為用戶(hù)開(kāi)設(shè)的一個(gè)數(shù)據(jù)緩沖區(qū),存放SQL語(yǔ)句的執(zhí)行結(jié)果。每個(gè)游標(biāo)區(qū)都有一個(gè)名字。用戶(hù)可以用SQL語(yǔ)句逐一從游標(biāo)中獲取記錄,并賦給主變量,交由主語(yǔ)言進(jìn)一步處理。
關(guān)系數(shù)據(jù)庫(kù)中的操作會(huì)對(duì)整個(gè)行集起作用。由SELECT語(yǔ)句返回的行集包括滿(mǎn)足該語(yǔ)句的 WHERE子句中條件的所有行。這種由語(yǔ)句返回的完整行集稱(chēng)為結(jié)果集。應(yīng)用程序,特別是交互式聯(lián)機(jī)應(yīng)用程序,并不總能將整個(gè)結(jié)果集作為一個(gè)單元來(lái)有效地處理。這些應(yīng)用程序需要一種機(jī)制以便每次處理一行或一部分行。游標(biāo)就是提供這種機(jī)制的對(duì)結(jié)果集的一種擴(kuò)展。
游標(biāo)通過(guò)以下方式來(lái)擴(kuò)展結(jié)果處理:
允許定位在結(jié)果集的特定行。
從結(jié)果集的當(dāng)前位置檢索一行或一部分行。
支持對(duì)結(jié)果集中當(dāng)前位置的行進(jìn)行數(shù)據(jù)修改。
為由其他用戶(hù)對(duì)顯示在結(jié)果集中的數(shù)據(jù)庫(kù)數(shù)據(jù)所做的更改提供不同級(jí)別的可見(jiàn)性支持。
提供腳本、存儲(chǔ)過(guò)程和觸發(fā)器中用于訪問(wèn)結(jié)果集中的數(shù)據(jù)的Transact-SQL語(yǔ)句。
請(qǐng)求游標(biāo)
MicrosoftSQL Server支持兩種請(qǐng)求游標(biāo)的方法:
Transact-SQL
Transact-SQL 語(yǔ)言支持在 ISO 游標(biāo)語(yǔ)法之后制定的用于使用游標(biāo)的語(yǔ)法。
數(shù)據(jù)庫(kù)應(yīng)用程序編程接口(API)游標(biāo)函數(shù)
SQL Server 支持以下數(shù)據(jù)庫(kù) API 的游標(biāo)功能:
ADO(Microsoft ActiveX 數(shù)據(jù)對(duì)象)
OLE DB
ODBC(開(kāi)放式數(shù)據(jù)庫(kù)連接)
應(yīng)用程序不能混合使用這兩種請(qǐng)求游標(biāo)的方法。已經(jīng)使用 API 指定游標(biāo)行為的應(yīng)用程序不能再執(zhí)行 Transact-SQL DECLARE CURSOR 語(yǔ)句請(qǐng)求一個(gè) Transact-SQL 游標(biāo)。應(yīng)用程序只有在將所有的 API 游標(biāo)特性設(shè)置回默認(rèn)值后,才可以執(zhí)行 DECLARE CURSOR。
如果既未請(qǐng)求 Transact-SQL 游標(biāo)也未請(qǐng)求 API 游標(biāo),則默認(rèn)情況下 SQL Server 將向應(yīng)用程序返回一個(gè)完整的結(jié)果集,這個(gè)結(jié)果集稱(chēng)為默認(rèn)結(jié)果集。
游標(biāo)進(jìn)程
Transact-SQL游標(biāo)和API游標(biāo)有不同的語(yǔ)法,但下列一般進(jìn)程適用于所有SQL Server游標(biāo):
1.將游標(biāo)與 Transact-SQL語(yǔ)句的結(jié)果集相關(guān)聯(lián),并且定義該游標(biāo)的特性,例如是否能夠更新游標(biāo)中的行。
2.執(zhí)行 Transact-SQL語(yǔ)句以填充游標(biāo)。
3.從游標(biāo)中檢索您想要查看的行。從游標(biāo)中檢索一行或一部分行的操作稱(chēng)為提取。執(zhí)行一系列提取操作以便向前或向后檢索行的操作稱(chēng)為滾動(dòng)。
4.根據(jù)需要,對(duì)游標(biāo)中當(dāng)前位置的行執(zhí)行修改操作(更新或刪除)。
5.關(guān)閉游標(biāo)。
原文出自:華軍資訊
轉(zhuǎn)載于:https://www.cnblogs.com/mixer/archive/2011/06/29/2448789.html
總結(jié)
以上是生活随笔為你收集整理的微软SQL Server数据库的两种请求游标的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: loadrunner 录制 odbc 迭
- 下一篇: java cmd javac java