sp_cursorexecute (Transact-SQL)

适用于:SQL Server

基于 sp_cursorprepare 创建的执行计划创建并填充游标。 此过程与sp_cursorprepare具有与sp_cursoropen相同的功能,但分为两个阶段。 sp_cursorexecute通过在 TDS) 数据包 (表格数据流中指定 ID =4 来调用。

Transact-SQL 语法约定

语法

  
sp_cursorexecute prepared_handle, cursor  
    [ , scrollopt[ OUTPUT ]  
    [ , ccopt[ OUTPUT ]  
    [ ,rowcount OUTPUT [ ,bound param][,...n]]]]]  

参数

prepared_handle
sp_cursorprepare返回的准备语句 句柄 值。 prepared_handle 是调用 int 输入值的必需参数。

cursor
为 SQL Server 生成的游标标识符。 cursor 是必需参数,必须在针对游标执行操作的所有后续过程(例如sp_cursorfetch

scrollopt
滚动选项。 scrollopt 是一个可选参数,需要 int 输入值。 sp_cursorexecutescrollopt 参数具有与sp_cursoropen相同的值选项。

注意

不支持 PARAMETERIZED_STMT 值。

重要

如果未指定 scrollopt 值,则默认值为 KEYSET,而不考虑在 sp_cursorprepare 中指定的 scrollopt 值。

ccopt
币种控制选项。 ccopt 是一个可选参数,需要 int 输入值。 sp_cursorexecuteccopt 参数的值选项与sp_cursoropen的值选项相同。

重要

如果未指定 ccopt 值,则默认值为 OPTIMISTIC,而不考虑在 sp_cursorprepare 中指定的 ccopt 值。

rowcount
一个可选参数,指示要用于 AUTO_FETCH 的提取缓冲区行数。 默认值为 20 行。 当分配为输入值与返回值时,rowcount 的行为有所不同。

作为输入值 作为返回值
使用 FAST_FORWARD 指定AUTO_FETCH时, 游标 rowcount 表示要放入提取缓冲区的行数。 表示结果集中的行数。 指定 scrollopt AUTO_FETCH 值时, rowcount 返回提取到提取缓冲区的行数。

bound_param
指示可选使用其他参数。

注意

第五个参数之后的任何参数都将作为输入参数传递到语句计划。

代码返回值

rowcount 可能会返回以下值。

说明
-1 未知的行数。
-n 异步填充生效。

备注

scrollopt 和 ccopt 参数

当服务器缓存抢占缓存的计划时,scrolloptccopt 非常有用,这意味着必须重新编译标识语句的准备句柄。 scrolloptccopt 参数值必须与原始请求中发送的值匹配,以sp_cursorprepare。

注意

不应将PARAMETERIZED_STMT分配给 scrollopt

如果无法提供匹配值,则将导致重新编译计划,而取消 prepare 和 execute 操作。

RPC 和 TDS 注意事项

RPC RETURN_METADATA 输入标志可设置为 1,以请求在 TDS 流中返回游标选择列表元数据。

另请参阅

sp_cursoropen (Transact-SQL)
sp_cursorfetch (Transact-SQL)
系统存储过程 (Transact-SQL)