②特点:游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制
③作用:当需要逐条读取记录时可以用游标,相当于for循环,一次获取一条记录进行操作。当一组记录没有id字段时,此时用for循环不能够实现,而游标可以解决此问题(注:当数据量很大的时候不建议使用游标,因为游标处理处理数据比较慢)
SQL Server中的游标相当于循环
使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。游标机制允许用户在SQL
server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。. 如何使用游标:
一般地,使用游标都遵循下列的常规步骤:
(1)
声明游标。把游标与T-SQL语句的结果集联系起来。
(2)
打开游标。
(3)
使用游标操作数据。(4) 关闭游标。
下列为游标SQL:
DECLARE Testcursor cursor
FOR SELECT * FROM test
OPEN
Testcursor
FETCH
NEXT from Testcursor
WHILE @@FETCH_STATUS =
0
BEGIN--这里就是处理逻辑所在
FETCH NEXT from
Testcursor
ENDCLOSE
Testcursor
DEALLOCATE
Testcursor
只有在少数情况下才应当使用游标。举两个例子:1. 需要遍历表名,进行DDL操作;2. 连续聚合,此时基于游标的解决方案可能比基于集合的解决方案更快。
一般是在需要对查询的结果集中的数据再进行二次处理才会用到。