打開游標(biāo)
- 全局游標(biāo):Open Global MyCursor
- 局部游標(biāo): Open MyCursor
讀取游標(biāo)數(shù)據(jù):在打開游標(biāo)以后,使用Fetch語句從Transaction-SQL服務(wù)器游標(biāo)中檢索特定的一行。使用Fetch操作,可以使游標(biāo)移動到下一個記錄,并將游標(biāo)返回的每個列得數(shù)據(jù)分別賦值給聲明的本地變量。
Fetch [Next | Prior | First | Last | Absolute n | Relative n ] From MyCursor
Into @GoodsID,@GoodsName
其中:Next表示返回結(jié)果集中當(dāng)前行的下一行記錄,如果第一次讀取則返回第一行。默認(rèn)的讀取選項為Next
Prior表示返回結(jié)果集中當(dāng)前行的前一行記錄,如果第一次讀取則沒有行返回,并且把游標(biāo)置于第一行之前。
First表示返回結(jié)果集中的第一行,并且將其作為當(dāng)前行。
Last表示返回結(jié)果集中的最后一行,并且將其作為當(dāng)前行。
Absolute n 如果n為正數(shù),則返回從游標(biāo)頭開始的第n行,并且返回行變成新的當(dāng)前行。如果n為負(fù),則返回從游標(biāo)末尾開始的第n行,并且返回行為新的當(dāng)前行,如果n為0,則返回當(dāng)前行。
Relative n 如果n為正數(shù),則返回從當(dāng)前行開始的第n行,如果n為負(fù),則返回從當(dāng)前行之前的第n行,如果為0,則返回當(dāng)前行。
關(guān)閉游標(biāo)調(diào)用的是Close語句,方式如下:
Close Global MyCursor Close MyCursor
釋放游標(biāo)調(diào)用的是Deallocate語句,方法如下:
Deallocate Glboal MyCursor Deallocate MyCursor
游標(biāo)實例:
Declare MyCusror Cursor Scroll
For Select * From Master_Goods Order By GoodsID
Open MyCursor
Fetch next From MyCursor Into @GoodsCode,@GoodsName
While(@@Fetch_Status = 0) Begin
Begin Select @GoodsCode = Convert(Char(20),@GoodsCode) Select @GoodsName = Convert(Char(20),@GoodsName) PRINT @GoodsCode + ':' + @GoodsName End
Fetch next From MyCursor Into @GoodsCode,@GoodsName
End Close MyCursor Deallocate MyCursor
修改當(dāng)前游標(biāo)的數(shù)據(jù)方法如下:
UpDate Master_Goods Set GoodsName = 'yangyang8848' Where Current Of MyCursor;
刪除當(dāng)前游標(biāo)行數(shù)據(jù)的方法如下:
Delete From Master_Goods Where Current Of MyCursor
Select @@CURSOR_ROWS 可以得到當(dāng)前游標(biāo)中存在的數(shù)據(jù)行數(shù)。注意:此變量為一個連接上的全局變量,因此只對應(yīng)最后一次打開的游標(biāo)。
原文:http://www.cnblogs.com/yangyang8848/archive/2009/07/02/1514593.html
本文鏈接:http://www.95time.cn/tech/program/2009/6842.asp
出處:yangyang8848
責(zé)任編輯:bluehearts
上一頁 SQLServer 游標(biāo)簡介與使用說明 [2] 下一頁
◎進入論壇網(wǎng)絡(luò)編程版塊參加討論
|