SQL Server教程:详细学习游标(二)

标准游标:


  Declare MyCursor Cursor
  For Select * From Master_Goods

  只读游标


  Declare MyCusror Cursor
  For Select * From Master_Goods
  For Read Only

  可更新游标


  Declare MyCusror Cursor
  For Select * From Master_Goods
  For UpDate

  打开游标使用Open语句用于打开Transaction-SQL服务器游标,执行Open语句的过程中就是按照Select语句进行填充数据,打开游标以后游标位置在第一行。

  打开游标

  全局游标: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 可以得到当前游标中存在的数据行数。注意:此变量为一个连接上的全局变量,因此只对应最后一次打开的游标。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值