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,不能NULL
。
cursor
生成的数据库引擎游标标识符。 cursor 是必须在对游标执行的所有后续过程上提供的必需参数,例如 sp_cursorfetch
。
scrollopt
滚动选项。 scrollopt 参数为 int,默认值为 NULL
. sp_cursorexecute
scrollopt 参数的值选项与 sp_cursoropen
.
PARAMETERIZED_STMT
不支持该值。
如果未指定 scrollopt 值,则默认值KEYSET
不考虑在中指定的 sp_cursorprepare
scrollopt 值。
ccopt
币种控制选项。 ccopt 是一个可选参数,需要 int 输入值。 sp_cursorexecute
ccopt 参数的值选项与 sp_cursoropen
.
如果未指定 ccopt 值,则默认值OPTIMISTIC
不考虑在中指定的 sp_cursorprepare
ccopt 值。
rowcount
一个可选参数,表示要用于 AUTO_FETCH
的提取缓冲区行数。 默认值为 20 行。 当分配为输入值与返回值时,rowcount 的行为方式不同。
作为输入值 | 作为返回值 |
---|---|
使用FAST_FORWARD 游标指定时AUTO_FETCH ,行计数表示要放入提取缓冲区的行数。 |
表示结果集中的行数。 指定 scrollopt AUTO_FETCH 值后,行计数将返回提取缓冲区中的行数。 |
bound_param
表示可选使用额外参数。
第五个参数之后的任何参数都将作为输入参数传递到语句计划。
返回代码值
rowcount 返回以下值。
值 | 说明 |
---|---|
-1 |
未知的行数。 |
-n |
异步填充生效。 |
注解
scrollopt 和 ccopt 参数
当缓存的计划抢占服务器缓存时,scrollopt 和 ccopt 非常有用,这意味着必须重新编译标识语句的已准备句柄。 scrollopt 和 ccopt 参数值必须与原始请求sp_cursorprepare
中发送的值匹配。
PARAMETERIZED_STMT
不应分配给 scrollopt。
未能提供匹配值会导致重新编译计划,从而否定准备和执行操作。
RPC 和 TDS 注意事项
RPC RETURN_METADATA
输入标志可以设置为 1
请求在 TDS 流中返回游标选择列表元数据。