游标实例

简介:

定义

游标(cursor)是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。每个游标区都有一个名字。用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。

 

实例

 
  1. DECLARE STU_CUR1 CURSOR 
  2. FOR 
  3. SELECT * FROM STUDENT  
  4.  
  5.  
  6. DECLARE STU_CUR SCROLL CURSOR 
  7. FOR 
  8. SELECT SNO,SNAME,SAGE,SGENTLE,SDEPT  
  9. FROM STUDENT  
  10. WHERE SDEPT='计算机' 
  11. ORDER BY SNO DESC 
  12. --FOR READ ONLY  
  13.  
  14. deallocate stu_cur--删除游标  
  15. SET STATISTICS IO ON 
  16. set cursor_close_on_commit off--可以用set cursor_close_on_commit off 来保持游标是一直打开的,除非你手动关闭  
  17. OPEN STU_CUR  
  18. SET NOCOUNT ON 
  19. FETCH NEXT FROM STU_CUR--提取下一条数据,如果是第一次提取数据,提取出来的是第一条数据  
  20. WHILE @@FETCH_STATUS=0  
  21. BEGIN 
  22. FETCH NEXT FROM STU_CUR  
  23. --FETCH ABSOLUTE 2 FROM STU_CUR--提取数据中的第二行  
  24. END 
  25. --FETCH PRIOR FROM STU_CUR--提取前一条数据  
  26. --FETCH FIRST FROM STU_CUR--提取第一条数据  
  27. --FETCH LAST FROM STU_CUR--提取最后一条数据  
  28.  
  29. --不管是更新还是删除它们所用到的数据都是从FETCH中得到的所以它们前面必须要有FETCH语句  
  30. --使用游标更新数据  
  31. UPDATE STUDENT SET SAGE=20 WHERE CURRENT OF STU_CUR  
  32. --使用游标删除数据  
  33. DELETE FROM STUDENT WHERE CURRENT OF STU_CUR  
  34. CLOSE STU_CUR  
  35. select * from STUDENT  
  36. SELECT * FROM TEMPDB  
  37.  
  38. --将游标变量与游标关联起来  
  39. DECLARE @SC CURSOR 
  40. SET @SC = CURSOR 
  41. FOR SELECT * FROM STUDENT 

 本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/420262,如需转载请自行联系原作者

相关文章
|
4月前
|
存储 SQL 关系型数据库
触发器和游标区别
触发器(Trigger)和游标(Cursor)是关系型数据库中常见的两个概念,它们在功能和使用上有一些区别。下面是触发器和游标的主要区别:
189 1
|
SQL 数据库 Windows
sql 2008 R2 函数、游标的创建和使用
sql 2008 R2 函数、游标的创建和使用
246 0
|
SQL 数据处理 数据库管理
|
SQL 算法 Go
|
API 数据库 数据库连接