游标
http://msdn.microsoft.com/zh-cn/library/ms191179.aspx
关系数据库中的操作会对整个行集起作用。由 SELECT 语句返回的行集包括满足该语句的 WHERE 子句中条件的所有行。这种由语句返回的完整行集称为结果集。应用程序,特别是交互式联机应用程序,并不总能将整个结果集作为一个单元来有效地处理。这些应用程序需要一种机制以便每次处理一行或一部分行。游标就是提供这种机制的对结果集的一种扩展。
游标通过以下方式来扩展结果处理:
-
允许定位在结果集的特定行。
-
从结果集的当前位置检索一行或一部分行。
-
支持对结果集中当前位置的行进行数据修改。
-
为由其他用户对显示在结果集中的数据库数据所做的更改提供不同级别的可见性支持。
-
提供脚本、存储过程和触发器中用于访问结果集中的数据的 Transact-SQL 语句。
MicrosoftSQL Server 支持两种请求游标的方法:
-
Transact-SQL
Transact-SQL 语言支持在 ISO 游标语法之后制定的用于使用游标的语法。
-
数据库应用程序编程接口(API)游标函数
SQL Server 支持以下数据库 API 的游标功能:
-
ADO(Microsoft ActiveX 数据对象)
-
OLE DB
-
ODBC(开放式数据库连接)
-
应用程序不能混合使用这两种请求游标的方法。已经使用 API 指定游标行为的应用程序不能再执行 Transact-SQL DECLARE CURSOR 语句请求一个 Transact-SQL 游标。应用程序只有在将所有的 API 游标特性设置回默认值后,才可以执行 DECLARE CURSOR。
如果既未请求 Transact-SQL 游标也未请求 API 游标,则默认情况下 SQL Server 将向应用程序返回一个完整的结果集,这个结果集称为默认结果集。