《游標(biāo)事務(wù)和鎖》PPT課件

《游標(biāo)事務(wù)和鎖》PPT課件

ID:45550574

大小:375.34 KB

頁(yè)數(shù):33頁(yè)

時(shí)間:2019-11-14

《游標(biāo)事務(wù)和鎖》PPT課件_第1頁(yè)
《游標(biāo)事務(wù)和鎖》PPT課件_第2頁(yè)
《游標(biāo)事務(wù)和鎖》PPT課件_第3頁(yè)
《游標(biāo)事務(wù)和鎖》PPT課件_第4頁(yè)
《游標(biāo)事務(wù)和鎖》PPT課件_第5頁(yè)
資源描述:

《《游標(biāo)事務(wù)和鎖》PPT課件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、----SQLServer2000第八章游標(biāo)、事務(wù)和鎖游標(biāo)游標(biāo)(Cursor)是一個(gè)用來(lái)保存“數(shù)據(jù)集”的容器。可以對(duì)其中的數(shù)據(jù)以記錄為單位(利用循環(huán)技術(shù))一行、一行地處理。游標(biāo)主要用在服務(wù)器上,由從客戶端發(fā)送給服務(wù)器的Transact_SQL語(yǔ)句或是批處理存儲(chǔ)過(guò)程觸發(fā)器中的Transact_SQL進(jìn)行管理。Transact_SQL游標(biāo)不支持提取數(shù)據(jù)塊或多行數(shù)據(jù)。對(duì)游標(biāo)的處理過(guò)程DECLARE游標(biāo)OPEN游標(biāo)從一個(gè)游標(biāo)中FETCH信息CLOSE或DEALLOCATE游標(biāo)聲明游標(biāo)定義游標(biāo)的滾動(dòng)行為和用于生成游標(biāo)對(duì)其進(jìn)行操作的結(jié)果集的查詢。聲明一個(gè)游標(biāo)主要包括以下

2、主要內(nèi)容:游標(biāo)名字?jǐn)?shù)據(jù)來(lái)源(表和列)選取條件屬性(僅讀或可修改)聲明游標(biāo)SQL-92語(yǔ)法格式:DECLAREcursor_name[INSENSITIVE][SCROLL]CURSORFORselect_statement[FOR{READONLY

3、UPDATE[OFcolumn_name[,...n]]}]其中:cursor_name指游標(biāo)的名字INSENSITIVE:表明會(huì)將游標(biāo)定義所選取出來(lái)的數(shù)據(jù)記錄存放在一臨時(shí)表內(nèi)(建立在tempdb數(shù)據(jù)庫(kù)下)SCROLL:表明所有的提取操作,如FIRST、LAST、PRIOR、NEXT、RELATIVE、ABSOL

4、UTE都可用。如果不使用該保留字,那么只能進(jìn)行NEXT提取操作。select_statement:是定義結(jié)果集的SELECT語(yǔ)句READONLY:表明不允許游標(biāo)內(nèi)的數(shù)據(jù)被更新,盡管在缺省狀態(tài)下游標(biāo)是允許更新的。UPDATE[OFcolumn_name[,…n]]:定義在游標(biāo)中可被修改的列,如果不指出要更新的列,那么所有的列都將被更新。聲明游標(biāo)當(dāng)游標(biāo)被成功創(chuàng)建后,游標(biāo)名成為該游標(biāo)的惟一標(biāo)識(shí)。如果在以后的存儲(chǔ)過(guò)程觸發(fā)器或Transact_SQL腳本中使用游標(biāo)必須指定該游標(biāo)的名字聲明游標(biāo)例:declarecur_royschedcursorforselectlor

5、ange,hirange,royaltyfromroyschedwheretitle_id=’BU1032’擴(kuò)展的游標(biāo)聲明語(yǔ)法Transact-SQL擴(kuò)展語(yǔ)法格式:DECLAREcursor_nameCURSOR[LOCAL

6、GLOBAL][FORWARD_ONLY

7、SCROLL][STATIC

8、KEYSET

9、DYNAMIC

10、FAST_FORWARD][READ_ONLY

11、SCROLL_LOCKS

12、OPTIMISTIC][TYPE_WARNING]FORselect_statement[FORUPDATE[OFcolumn_name[,...n]]]其中:L

13、OCAL:定義游標(biāo)的作用域僅限在其所在的存儲(chǔ)過(guò)程、觸發(fā)器或批處理中。當(dāng)建立游標(biāo)的存儲(chǔ)過(guò)程執(zhí)行結(jié)束后,游標(biāo)會(huì)被自動(dòng)釋放。因此我們常在存儲(chǔ)過(guò)程中使用OUTPUT保留字,將游標(biāo)傳遞給該存儲(chǔ)過(guò)程的調(diào)用者。這樣在存儲(chǔ)過(guò)程執(zhí)行結(jié)束后可以引用該游標(biāo)變量。GLOBAL:定義游標(biāo)的作用域是整個(gè)會(huì)話層會(huì)話層,指用戶的連接時(shí)間,它包括從用戶登錄到SQLSERVER到脫離數(shù)據(jù)庫(kù)的整段時(shí)間。選擇GLOBAL表明,在整個(gè)會(huì)話層的任何存儲(chǔ)過(guò)程、觸發(fā)器或批處理中都可以使用該游標(biāo)。只有當(dāng)用戶脫離數(shù)據(jù)庫(kù)時(shí)該游標(biāo)才會(huì)被自動(dòng)釋放。標(biāo)準(zhǔn)游標(biāo)例:declarecur_authorscursorfors

14、electau_id,au_lname,au_fname,phone,address,city,state,contractfromauthors讀游標(biāo)例:declarecur_authorscursorforselectau_lname,au_fname,phone,address,city,statefromauthorsforreadonly更新游標(biāo)例:declarecur_authorscursorforselectau_lname,au_fnamefromauthorsforupdate打開游標(biāo)游標(biāo)在聲明以后,如果要從游標(biāo)中讀取數(shù)據(jù)必須打開游標(biāo)。打

15、開一個(gè)Transact-SQL服務(wù)器游標(biāo)使用OPEN命令其語(yǔ)法規(guī)則為:OPEN{{[GLOBAL]cursor_name}

16、cursor_variable_name}其中:GLOBAL:定義游標(biāo)為一全局游標(biāo)cursor_name:為聲明的游標(biāo)名字,如果一個(gè)全局游標(biāo)和一個(gè)局部游標(biāo)都使用同一個(gè)游標(biāo)名。則如果使用GLOBAL便表明其為全局游標(biāo),否則表明其為局部游標(biāo)。cursor_variable_name:為游標(biāo)變量在游標(biāo)被成功打開之后@@CURSOR_ROWS全局變量將用來(lái)記錄游標(biāo)內(nèi)數(shù)據(jù)行數(shù)。讀取游標(biāo)中的數(shù)據(jù)當(dāng)游標(biāo)被成功打開以后,就可以從游標(biāo)中逐行地讀取數(shù)據(jù)以進(jìn)

17、行相關(guān)處理。從游標(biāo)中讀取數(shù)據(jù)主要使用FETCH命令其

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

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

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