sp_cursorexecute (Transact-SQL)
适用于:SQL Server
基于 sp_cursorprepare 创建的执行计划创建并填充游标。 此过程与sp_cursorprepare具有与sp_cursoropen相同的功能,但分为两个阶段。 sp_cursorexecute通过在 TDS) 数据包 (表格数据流中指定 ID =4 来调用。
语法
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 参数
当服务器缓存抢占缓存的计划时,scrollopt 和 ccopt 非常有用,这意味着必须重新编译标识语句的准备句柄。 scrollopt 和 ccopt 参数值必须与原始请求中发送的值匹配,以sp_cursorprepare。
注意
不应将PARAMETERIZED_STMT分配给 scrollopt。
如果无法提供匹配值,则将导致重新编译计划,而取消 prepare 和 execute 操作。
RPC 和 TDS 注意事项
RPC RETURN_METADATA 输入标志可设置为 1,以请求在 TDS 流中返回游标选择列表元数据。
另请参阅
sp_cursoropen (Transact-SQL)
sp_cursorfetch (Transact-SQL)
系统存储过程 (Transact-SQL)
反馈
提交和查看相关反馈