版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本章前半部分提供了在MSSQLSERVER中應(yīng)用游標(biāo)所應(yīng)具有的有關(guān)游標(biāo)的必要知識(shí)和各種語法。從中讀者可以了解游標(biāo)的優(yōu)點(diǎn)、種類、作用、學(xué)會(huì)如何定義、打開、存取、關(guān)閉、釋放游標(biāo)以及游標(biāo)的應(yīng)用。除此之外,在本章的后半部分我們介紹了視圖和用戶自定義函數(shù),使讀者了解視圖的眾多優(yōu)點(diǎn),比如簡(jiǎn)化操作、提高數(shù)據(jù)安全性;了解如何創(chuàng)建、管理視圖和用戶自定義函數(shù);了解如何在存儲(chǔ)過程和批處理中調(diào)用用戶自定義函數(shù)等諸多問題。在數(shù)據(jù)庫開發(fā)過程中,當(dāng)你檢索的數(shù)據(jù)只是一
2、條記錄時(shí),你所編寫的事務(wù)語句代碼往往使用語句。但是我們常常會(huì)遇到這樣情況,即從某一結(jié)果集中逐一地讀取一條記錄。那么如何解決這種問題呢?游標(biāo)為我們提供了一種極為優(yōu)秀的解決方案。13.1.1游標(biāo)和游標(biāo)的優(yōu)點(diǎn)在數(shù)據(jù)庫中,游標(biāo)是一個(gè)十分重要的概念。游標(biāo)提供了一種對(duì)從表中檢索出的數(shù)據(jù)進(jìn)行操作的靈活手段,就本質(zhì)而言,游標(biāo)實(shí)際上是一種能從包括多條數(shù)據(jù)記錄的結(jié)果集中每次提取一條記錄的機(jī)制。游標(biāo)總是與一條T_SQL選擇語句相關(guān)聯(lián)因?yàn)橛螛?biāo)由結(jié)果集(可以是零
3、條、一條或由相關(guān)的選擇語句檢索出的多條記錄)和結(jié)果集中指向特定記錄的游標(biāo)位置組成。當(dāng)決定對(duì)結(jié)果集進(jìn)行處理時(shí),必須聲明一個(gè)指向該結(jié)果集的游標(biāo)。如果曾經(jīng)用C語言寫過對(duì)文件進(jìn)行處理的程序,那么游標(biāo)就像您打開文件所得到的文件句柄一樣,只要文件打開成功,該文件句柄就可代表該文件。對(duì)于游標(biāo)而言,其道理是相同的。可見游標(biāo)能夠?qū)崿F(xiàn)按與傳統(tǒng)程序讀取平面文件類似的方式處理來自基礎(chǔ)表的結(jié)果集,從而把表中數(shù)據(jù)以平面文件的形式呈現(xiàn)給程序。我們知道關(guān)系數(shù)據(jù)庫管理系
4、統(tǒng)實(shí)質(zhì)是面向集合的,在MSSQLSERVER中并沒有一種描述表中單一記錄的表達(dá)形式,除非使用where子句來限制只有一條記錄被選中。因此我們必須借助于游標(biāo)來進(jìn)行面向單條記錄的數(shù)據(jù)處理。由此可見,游標(biāo)允許應(yīng)用程序?qū)Σ樵冋Z句返回的行結(jié)果集中每一行進(jìn)行相同或不同的操作,而不是一次對(duì)整個(gè)結(jié)果集進(jìn)行同一種操作;它還提供對(duì)基于游標(biāo)位置而對(duì)表中數(shù)據(jù)進(jìn)行刪除或更新的能力;而且,正是游標(biāo)把作為面向集合的數(shù)據(jù)庫管理系統(tǒng)和面向行的程序設(shè)計(jì)兩者聯(lián)系起來,使兩個(gè)
5、數(shù)據(jù)處理方式能夠進(jìn)行溝通。2.OPEN游標(biāo)3.從一個(gè)游標(biāo)中FETCH信息4.CLOSE或DEALLOCATE游標(biāo)通常我們使用DECLARE來聲明一個(gè)游標(biāo)聲明一個(gè)游標(biāo)主要包括以下主要內(nèi)容:游標(biāo)名字?jǐn)?shù)據(jù)來源(表和列)選取條件屬性(僅讀或可修改)其語法格式如下:DECLAREcurs_name[INSENSITIVE][SCROLL]CURSF_statement[FREADONLY|UPDATE[OFcolumn_name[...n]]]其
6、中:curs_name指游標(biāo)的名字。INSENSITIVE表明MSSQLSERVER會(huì)將游標(biāo)定義所選取出來的數(shù)據(jù)記錄存放在一臨時(shí)表內(nèi)(建立在tempdb數(shù)據(jù)庫下)。對(duì)該游標(biāo)的讀取操作皆由臨時(shí)表來應(yīng)答。因此,對(duì)基本表的修改并不影響游標(biāo)提取的數(shù)據(jù),即游標(biāo)不會(huì)隨著基本表內(nèi)容的改變而改變,同時(shí)也無法通過游標(biāo)來更新基本表。如果不使用該保留字,那么對(duì)基本表的更新、刪除都會(huì)反映到游標(biāo)中。另外應(yīng)該指出,當(dāng)遇到以下情況發(fā)生時(shí),游標(biāo)將自動(dòng)設(shè)定INSENSI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
評(píng)論
0/150
提交評(píng)論