三个重要的游标sp_cursoropen

 請問這三個存諸過程的作用是什么﹖ 

sp_cursoropen, 

sp_cursorfetch, 

sp_cursorclose 

API 服务器游标实现  SQL Server OLE DB 提供程序、

SQL Server ODBC 驱动程序和 DB-Library DLL 使用这些特殊的系统存储过程向服务器示意游标操作。 

sp_cursoropen 定义与游标和游标选项相关的 SQL 语句,然后生成游标。 

sp_cursorfetch 从游标中提取一行或多行。 

sp_cursorclose 关闭并释放游标。 

sp_cursoroption 设置各种游标选项。 

sp_cursor 用于请求定位更新。 

sp_cursorprepare 把与游标有关的 Transact-SQL 语句或批处理编译成执行计划,但并不创建游标。 

sp_cursorexecute 从由 sp_cursorprepare 创建的执行计划中创建并填充游标。 

sp_cursorunprepare 废弃由 sp_cursorprepare 生成的执行计划。 

这些系统存储过程将在使用 API 服务器游标的 ADO、OLE DB、ODBC 和 DB-Library 应用程序的 SQL Server 事件探查器跟踪中显示。

这些记录仅供 SQL Server OLE DB 提供程序、SQL Server ODBC 驱动程序和 DB-Library DLL 内部使用。

应用程序可通过数据库 API 的游标功能来使用这些过程的完整功能。在应用程序中直接指定过程的做法不受支持。 

当 SQL Server 在某连接上执行语句时,只有在来自第一个语句的所有结果处理完毕或被取消时,才能在连接上执行其它语句。

在使用 API 服务器游标时,这个规则仍然成立,但是从应用程序的角度来看,好象 SQL Server 在一个连接上已经开始支持多个活动语句。

这是因为完整的结果集存储在服务器游标中,而仅有的传递给 SQL Server 的语句是对 sp_cursor 系统存储过程的执行。

SQL Server 执行这些存储过程,且一旦客户端检索该结果集,它就可以开始执行其它语句。

OLE DB 提供程序和 ODBC 驱动程序则在把控制返回给应用程序之前始终检索来自 sp_cursor 存储过程的所有结果集。

这使应用程序可以插空在多级活动服务器游标中进行提取操作。 

                    --by 别人百度空间

原文地址:https://www.cnblogs.com/qianlovebeijixiong/p/3230518.html