SQL Server学习进程(十三)---游标

1.游标

游标是一种处理数据的方法,主要用于存储过程、触发器和Transact-SQL脚本中,它们使结果集的内容可用于其他的Transact-SQL语句。在查看和处理结果集中的数据时,游标可以提供在结果集中向前看或向后浏览数据的功能。类似于C语言中的指针,它可以指向结果集中的任意位置。当对结果集进行逐行单独处理时,必须声明一个指向该结果集的游标变量。

游标的优点:

(1)允许程序对由SELECT查询语句返回的行集中的每一行执行相同或不同的操作,而不是对整个集合执行同一个操作。

(2)提供对基于游标位置的表中的行进行删除和更新的能力。

(3)游标作为数据管理系统和应用程序设计之间的桥梁,将两种处理方式连接起来。

2.游标的操作

对游标的主要操作:声明游标、打开游标、读取游标中的数据、关闭游标和释放游标

--声明游标

DECLARE cursor_name CURSOR [LOCAL | GLOBAL]
[FORWARD_ONLY | SCROLL]
[STATIC | KEYSET |DYNAMIC | FAST_FORWARD]
[READ_ONLY | SCROLL_LOCKS | OPTIMISTIC]
[TYPE_WARNING]
FOR select_statement
[FOR UPDATE[OF column_name[,...n]]]


declare cursor_fruit CURSOR for
select f_name,f_price from fruits

--打开游标 使用之前,必须先打开游标
OPEN [GLOBAL] cursor_name | cursor_variable_name
--cursor_variable_name:游标变量的名称,该变量引用一个游标
--读取游标中的数据
FETCH 
     [ [NEXT | PRIOR | FIRST | LAST]
|ABSOLUTE {N |@nvar}
| RELATIVE { n | @var}
]
from
{{[GLOBAL] cursor_name} | @ cursor_variation_name}
[INTO @variable_name[,...n]]

--关闭游标
CLOSE [GLOBAL] cursor_name | cursor_variable_name
--释放游标
DEALLOCATE [GLOBAL] cursor_name | cursor_variable_name

猜你喜欢

转载自blog.csdn.net/qq_40951833/article/details/80791477