WEB开发网
开发学院数据库MSSQL Server SQL Server教程:详细学习游标 阅读

SQL Server教程:详细学习游标

 2009-07-03 08:01:17 来源:WEB开发网   
核心提示:打开游标 全局游标:Open Global MyCursor 局部游标: Open MyCursor 读取游标数据:在打开游标以后,使用Fetch语句从Transaction-SQL服务器游标中检索特定的一行,SQL Server教程:详细学习游标(3),使用Fetch操作,可以使游标移动到下一个记录,方

打开游标

  • 全局游标: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 3 

Tags:SQL Server 教程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接