關(guān)于sqlserverdeclare游標(biāo)的詳細介紹

關(guān)于sqlserverdeclare游標(biāo)的詳細介紹

ID:34742167

大?。?3.68 KB

頁數(shù):8頁

時間:2019-03-10

關(guān)于sqlserverdeclare游標(biāo)的詳細介紹_第1頁
關(guān)于sqlserverdeclare游標(biāo)的詳細介紹_第2頁
關(guān)于sqlserverdeclare游標(biāo)的詳細介紹_第3頁
關(guān)于sqlserverdeclare游標(biāo)的詳細介紹_第4頁
關(guān)于sqlserverdeclare游標(biāo)的詳細介紹_第5頁
資源描述:

《關(guān)于sqlserverdeclare游標(biāo)的詳細介紹》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫

1、關(guān)于SQLServerDECLARE游標(biāo)的詳細介紹?SQLServer是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng)。它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發(fā)的,于1988年推出了第一個OS/2版本。在WindowsNT推出后,Microsoft與Sybase在SQLServer的開發(fā)上就分道揚鑣了,Microsoft將SQLServer移植到WindowsNT系統(tǒng)上,專注于開發(fā)推廣SQLServer的WindowsNT版本。Sybase則較專注于SQLServer在UNⅨ操作系統(tǒng)上的應(yīng)用。專職優(yōu)化、數(shù)據(jù)庫、域名注冊、網(wǎng)站空間、虛擬主機、服務(wù)器托管、vps主機、

2、服務(wù)器租用的中國信息港在這里為你做詳細介紹!1.定義游標(biāo)定義游標(biāo)語句的核心是定義了一個游標(biāo)標(biāo)識名,并把游標(biāo)標(biāo)識名和一個查詢語句關(guān)聯(lián)起來。DECLARE語句用于聲明游標(biāo),它通過SELECT查詢定義游標(biāo)存儲的數(shù)據(jù)集合。語句格式為:DECLARE游標(biāo)名稱[INSENSITIVE][SCROLL]CURSORFORselect語句[FOR{READONLY

3、UPDATE[OF列名字表]}]參數(shù)說明:INSENSITIVE選項:說明所定義的游標(biāo)使用SELECT語句查詢結(jié)果的拷貝,對游標(biāo)的操作都基于該拷貝進行。因此,這期間對游標(biāo)基本表的數(shù)據(jù)修改不能反映到游標(biāo)中。這種游標(biāo)也不允許通過它修改基本表

4、的數(shù)據(jù)。SCROLL選項:指定該游標(biāo)可用所有的游標(biāo)數(shù)據(jù)定位方法提取數(shù)據(jù),游標(biāo)定位方法包括PRIOR、FIRST、LAST、ABSOLUTEn和RELATIVEn選項。Select語句:為標(biāo)準(zhǔn)的SELECT查詢語句,其查詢結(jié)果為游標(biāo)的數(shù)據(jù)集合,構(gòu)成游標(biāo)數(shù)據(jù)集合的一個或多個表稱作游標(biāo)的基表。在游標(biāo)聲明語句中,有下列條件之一時,系統(tǒng)自動把游標(biāo)定義為INSENSITIVE游標(biāo):SELECT語句中使用了DISTINCT、UNION、GROUPBY或HAVING等關(guān)鍵字;任一個游標(biāo)基表中不存在唯一索引。其他READONLY選項:說明定義只讀游標(biāo)。UPDATE[OF列名字表]選項:定義游標(biāo)可修改

5、的列。如果使用OF列名字表選項,說明只允許修改所指定的列,否則,所有列均可修改。例如,查詢教師名字和所教的課程名,定義游標(biāo)TCURSOR的語句如下:DECLARETCURSORCURSORFORSELECTtname,cnameFROMteacher,couseWHEREteacher.tno=couse.tno2.打開游標(biāo)打開游標(biāo)語句執(zhí)行游標(biāo)定義中的查詢語句,查詢結(jié)果存放在游標(biāo)緩沖區(qū)中。并使游標(biāo)指針指向游標(biāo)區(qū)中的第一個元組,作為游標(biāo)的缺省訪問位置。查詢結(jié)果的內(nèi)容取決與查詢語句的設(shè)置和查詢條件。打開游標(biāo)的語句格式:EXECSQLOPEN〈游標(biāo)名〉如果打開的游標(biāo)為INSENSITIV

6、E游標(biāo),在打開時將產(chǎn)生一個臨時表,將定義的游標(biāo)數(shù)據(jù)集合從其基表中拷貝過來。SQLServer中,游標(biāo)打開后,可以從全局變量@@CURSOR_ROWS中讀取游標(biāo)結(jié)果集合中的行數(shù)。例1:打開前面所創(chuàng)建的查詢教師姓名和所教課名稱的游標(biāo)。OPENtcursor例2:顯示游標(biāo)結(jié)果集合中數(shù)據(jù)行數(shù)SELECT數(shù)據(jù)行數(shù)=@@CURSOR_ROWS3.讀游標(biāo)區(qū)中的當(dāng)前元組讀游標(biāo)區(qū)數(shù)據(jù)語句是讀取游標(biāo)區(qū)中當(dāng)前元組的值,并將各分量依次賦給指定的共享主變量。FETCH語句用于讀取游標(biāo)中的數(shù)據(jù),語句格式為:FETCH[[NEXT

7、PRIOR

8、FIRST

9、LAST

10、ABSOLUTEn

11、RELATIVEn]FRO

12、M]游標(biāo)名[INTO@變量1,@變量2,….]其中:NEXT:說明讀取游標(biāo)中的下一行,第一次對游標(biāo)實行讀取操作時,NEXT返回結(jié)果集合中的第一行。PRIOR、FIRST、LAST、ABSOLUTEn和RELATIVEn選項只適用于SCROLL游標(biāo)。它們分別說明讀取游標(biāo)中的上一行、第一行、最后一行、第n行和相對于當(dāng)前位置的第n行。n為負(fù)值時,ABSOLUTEn和RELATIVEn說明讀取從游標(biāo)結(jié)果集合中的最后一行或當(dāng)前行倒數(shù)n行的數(shù)據(jù)。INTO子句說明將讀取的數(shù)據(jù)存放到指定的局部變量中,每一個變量的數(shù)據(jù)類型應(yīng)與游標(biāo)所返回的數(shù)據(jù)類型嚴(yán)格匹配,否則將產(chǎn)生錯誤。如果游標(biāo)區(qū)的元組已經(jīng)讀完,那

13、么系統(tǒng)狀態(tài)變量SQLSTATE的值被設(shè)為02000,意為"notuplefound"。例如,讀取tcursor中當(dāng)前位置后的第二行數(shù)據(jù)FETCHRELATIVE2FROMtcursor4.利用游標(biāo)修改數(shù)據(jù)SQLServer中的UPDATE語句和DELETE語句也支持游標(biāo)操作,它們可以通過游標(biāo)修改或刪除游標(biāo)基表中的當(dāng)前數(shù)據(jù)行。UPDATE語句的格式為:UPDATEtable_nameSET列名=表達式}[,…n]WHERECURRENTOFcursor_nameDELE

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。