sp_cursorprepexec (Transact-SQL)

为提交的游标语句或批处理编译计划,然后创建并填充游标。 sp_cursorprepexec 结合了 sp_cursorprepare 和 sp_cursorexecute 的功能。 此过程通过在表格格式数据流 (TDS) 包中指定 ID = 5 来调用。

主题链接图标 Transact-SQL 语法约定

语法

sp_cursorprepexec prepared handle OUTPUT, cursor OUTPUT, params , statement , options
    [ , scrollopt [ , ccopt [ , rowcount ] ] ]

参数

  • prepared handle
    是 SQL Server 生成的已准备的“句柄”标识符。 prepared handle 是必需的,它返回 int。

  • cursor
    是 SQL Server 生成的游标标识符。 cursor 是一个必需参数,必须对所有对此游标执行操作的后续过程 sp_cursorfetch.

  • params
    标识参数化语句。 变量的 params 定义替换为语句中的参数标记。 params 是一个必需参数,它需要 ntext、nchar 或nvarchar 输入值。

    注意注意

    当 stmt 已参数化且 scrollopt PARAMETERIZED_STMT 值为 ON 时,使用 ntext 字符串作为输入值。

  • statement
    定义游标结果集。 statement 参数是必需的,它需要 ntext、nchar 或 nvarchar 输入值。

    注意注意

    用于指定 stmt 值的规则与用于 sp_cursoropen 的规则相同,但例外是 stmt 字符串数据类型必须为 ntext。

  • options
    一个可选参数,它返回游标结果集列的说明。 options 需要以下 int 输入值。

    说明

    0x0001

    RETURN_METADATA

  • scrollopt
    滚动选项。 scrollopt 是一个可选参数,它需要以下 int 输入值之一。

    说明

    0x0001

    KEYSET

    0x0002

    DYNAMIC

    0x0004

    FORWARD_ONLY

    0x0008

    STATIC

    0x10

    FAST_FORWARD

    0x1000

    PARAMETERIZED_STMT

    0x2000

    AUTO_FETCH

    0x4000

    AUTO_CLOSE

    0x8000

    CHECK_ACCEPTED_TYPES

    0x10000

    KEYSET_ACCEPTABLE

    0x20000

    DYNAMIC_ACCEPTABLE

    0x40000

    FORWARD_ONLY_ACCEPTABLE

    0x80000

    STATIC_ACCEPTABLE

    0x100000

    FAST_FORWARD_ACCEPTABLE

    因为所请求的选项可能不适合由 <stmt> 定义的游标,所以,此参数可同时用作输入和输出。 在此类情况下,SQL Server 分配一个适当的类型并修改此值。

  • ccopt
    并发控制选项。 ccopt 是一个可选参数,它需要以下 int 输入值之一。

    说明

    0x0001

    READ_ONLY

    0x0002

    SCROLL_LOCKS(以前称为 LOCKCC)

    0x0004

    OPTIMISTIC(以前称为 OPTCC)

    0x0008

    OPTIMISTIC(以前称为 OPTCCVAL)

    0x2000

    ALLOW_DIRECT

    0x4000

    UPDT_IN_PLACE

    0x8000

    CHECK_ACCEPTED_OPTS

    0x10000

    READ_ONLY_ACCEPTABLE

    0x20000

    SCROLL_LOCKS_ACCEPTABLE

    0x40000

    OPTIMISTIC_ACCEPTABLE

    0x80000

    OPTIMISITC_ACCEPTABLE

    借助于 scrollpt,SQL Server 可能分配与所请求的值不同的其他值。

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

    作为输入值

    作为返回值

    当使用 FAST_FORWARD 游标指定 AUTO_FETCH 时,rowcount 表示要放入提取缓冲区中的行数。

    表示结果集中的行数。 当指定了 scrollopt AUTO_FETCH 值时,rowcount 返回提取到提取缓冲区中的行数。

返回代码值

如果 params 返回 NULL 值,则语句未参数化。

请参阅

参考

sp_cursoropen (Transact-SQL)

sp_cursorexecute (Transact-SQL)

sp_cursorprepare (Transact-SQL)

sp_cursorfetch (Transact-SQL)

系统存储过程 (Transact-SQL)