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