当前位置: 代码迷 >> SQL >> SQL Server 游标事例
  详细解决方案

SQL Server 游标事例

热度:65   发布时间:2016-05-05 13:29:55.0
SQL Server 游标例子
-声明游标

declare my_cursor cursor keyset for select * from info

--删除游标资源

deallocate my_cursor

--打开游标,在游标关闭或删除前都有效

open my_cursor

--关闭游标

close my_cursor

--释放游标
deallocate my_cursor


--声明局部变量

declare @id int,@name varchar(20),@address varchar(20)

--定位到指定位置的记录

fetch absolute 56488 from my_cursor into @id,@name,@address

select @id as id,@name as name,@address as address

--定位到当前记录相对位置记录

fetch relative -88 from my_cursor into @id,@name,@address

select @id as id,@name as name,@address as address

--定位到当前记录前一条

fetch prior from my_cursor into @id,@name,@address

select @id as id,@name as name,@address as address

--定位到当前记录后一条

fetch next from my_cursor into @id,@name,@address

select @id as id,@name as name,@address as address

--定位到首记录

fetch first from my_cursor into @id,@name,@address

select @id as id,@name as name,@address as address

--定位到尾记录

fetch last from my_cursor into @id,@name,@address

select @id as id,@name as name,@address as address

实例:

use database1

declare my_cursor cursor scroll dynamic /**//*scroll表示可随意移动游标指针(否则只能向前),dynamic表示可以读写游标(否则游标只读)*/forselect productname from  productopen my_cursordeclare @pname sysnamefetch next from my_cursor into @pnamewhile(@@fetch_status=0)  begin    print 'Product Name: ' + @pname    fetch next from my_cursor into @pname  endfetch first from my_cursor into @pnameprint @pname/**//*update product set productname='zzg' where current of my_cursor *//**//*delete from product where current of my_cursor */close my_cursordeallocate my_cursor
  相关解决方案