程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server詳細學習游標(3)

SQL Server詳細學習游標(3)

編輯:關於SqlServer


    打開游標

全局游標:Open Global MyCursor
局部游標: Open MyCursor
讀取游標數據:在打開游標以後,使用Fetch語句從Transaction-SQL服務器游標中檢索特定的一行。使用Fetch操作,可以使游標移動到下一個記錄,並將游標返回的每個列得數據分別賦值給聲明的本地變量。

Fetch [Next | Prior | First | Last | Absolute n | Relative n ]  From MyCursor

Into @GoodsID,@GoodsName

其中:Next表示返回結果集中當前行的下一行記錄,如果第一次讀取則返回第一行。默認的讀取選項為Next

Prior表示返回結果集中當前行的前一行記錄,如果第一次讀取則沒有行返回,並且把游標置於第一行之前。

First表示返回結果集中的第一行,並且將其作為當前行。

Last表示返回結果集中的最後一行,並且將其作為當前行。

Absolute n 如果n為正數,則返回從游標頭開始的第n行,並且返回行變成新的當前行。如果n為負,則返回從游標末尾開始的第n行,並且返回行為新的當前行,如果n為0,則返回當前行。

Relative n 如果n為正數,則返回從當前行開始的第n行,如果n為負,則返回從當前行之前的第n行,如果為0,則返回當前行。

關閉游標調用的是Close語句,方式如下:

Close Global MyCursor               Close MyCursor

釋放游標調用的是Deallocate語句,方法如下:

Deallocate Glboal MyCursor       Deallocate MyCursor

游標實例:

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
修改當前游標的數據方法如下:

UpDate Master_Goods Set GoodsName = 'yangyang8848' Where Current Of MyCursor;

刪除當前游標行數據的方法如下:

Delete From Master_Goods Where Current Of MyCursor

Select @@CURSOR_ROWS 可以得到當前游標中存在的數據行數。注意:此變量為一個連接上的全局變量,因此只對應最後一次打開的游標。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved