教您如何定義SQL Server游標(biāo)
SQL Server游標(biāo)是我們學(xué)習(xí)SQL數(shù)據(jù)庫(kù)時(shí)必須要掌握的知識(shí),下面就教您如何定義SQL Server游標(biāo),如果您在定義SQL Server游標(biāo)方面遇到過(guò)問(wèn)題,不妨一看。
游標(biāo)語(yǔ)句的核心是定義了一個(gè)游標(biāo)標(biāo)識(shí)名,并把游標(biāo)標(biāo)識(shí)名和一個(gè)查詢語(yǔ)句關(guān)聯(lián)起來(lái)。DECLARE語(yǔ)句用于聲明游標(biāo),它通過(guò)SELECT查詢定義游標(biāo)存儲(chǔ)的數(shù)據(jù)集合。語(yǔ)句格式為:
DECLARE 游標(biāo)名稱 [INSENSITIVE] [SCROLL]
CURSOR FOR select語(yǔ)句
[FOR{READ ONLY|UPDATE[OF 列名字表]}]
參數(shù)說(shuō)明:
INSENSITIVE選項(xiàng):說(shuō)明所定義的游標(biāo)使用SELECT語(yǔ)句查詢結(jié)果的拷貝,對(duì)游標(biāo)的操作都基于該拷貝進(jìn)行。因此,這期間對(duì)游標(biāo)基本表的數(shù)據(jù)修改不能反映到游標(biāo)中。這種游標(biāo)也不允許通過(guò)它修改基本表的數(shù)據(jù)。
SCROLL選項(xiàng):指定該游標(biāo)可用所有的游標(biāo)數(shù)據(jù)定位方法提取數(shù)據(jù),游標(biāo)定位方法包括PRIOR、FIRST、LAST、ABSOLUTE n 和RELATIVE n 選項(xiàng)。
Select語(yǔ)句:為標(biāo)準(zhǔn)的SELECT查詢語(yǔ)句,其查詢結(jié)果為游標(biāo)的數(shù)據(jù)集合,構(gòu)成游標(biāo)數(shù)據(jù)集合的一個(gè)或多個(gè)表稱作游標(biāo)的基表。
在游標(biāo)聲明語(yǔ)句中,有下列條件之一時(shí),系統(tǒng)自動(dòng)把游標(biāo)定義為INSENSITIVE游標(biāo):
SELECT語(yǔ)句中使用了DISTINCT、UNION、 GROUP BY或HAVING等關(guān)鍵字;
任一個(gè)游標(biāo)基表中不存在***索引。
其他
READ ONLY選項(xiàng):說(shuō)明定義只讀游標(biāo)。
UPDATE [OF 列名字表]選項(xiàng):定義SQL Server游標(biāo)可修改的列。如果使用OF 列名字表選項(xiàng),說(shuō)明只允許修改所指定的列,否則,所有列均可修改。
例如,查詢教師名字和所教的課程名,定義SQL Server游標(biāo)TCURSOR的語(yǔ)句如下 :
DECLARE TCURSOR CURSOR FOR
SELECT tname, cname
FROM teacher ,couse
WHERE teacher.tno = couse.tno
【編輯推薦】