分享方式:


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,不能為 NULL

cursor

資料庫引擎產生的數據指標標識碼。 cursor 是必要參數,必須在對數據指標採取行動的所有後續程式上提供,例如 sp_cursorfetch

scrollopt

捲動選項。 scrollopt 參數為 int,預設值為 NULLsp_cursorexecute scrollopt 參數的值選項sp_cursoropen與 相同。

不支援此值 PARAMETERIZED_STMT

如果未指定 scrollopt 值,則不論 中指定的 sp_cursorpreparescrollopt 值為何,預設值都是 KEYSET

ccopt

貨幣控制選項。 ccopt 是選擇性參數,需要 int 輸入值。 sp_cursorexecuteccopt 參數的值選項sp_cursoropen與 相同。

如果未指定 ccopt 值,則不論 中指定的 sp_cursorprepareccopt 值為何,預設值都是 OPTIMISTIC

rowcount

選擇性參數,表示要搭配 AUTO_FETCH使用的擷取緩衝區數據列數目。 預設值為20個數據列。 當指派為輸入值與傳回值時,rowcount 的行為會有所不同。

作為輸入值 作為傳回值
使用數據指標指定FAST_FORWARDAUTO_FETCHrowcount 代表要放入擷取緩衝區的數據列數目。 表示結果集中的數據列數目。 指定 scrollopt AUTO_FETCH 值時,rowcount 會傳回擷取至提取緩衝區的數據列數目。

bound_param

表示選擇性地使用額外的參數。

第五個之後的任何參數會以輸入參數的形式傳遞至語句計劃。

傳回碼值

rowcount 會傳回下列值。

Description
-1 未知的數據列數目。
-n 異步母體擴展實際上已生效。

備註

scrollopt 和 ccopt 參數

當快取計劃先佔伺服器快取時,scrolloptccopt 會很有用,這表示識別語句的備妥句柄必須重新編譯。 scrolloptccopt 參數值必須符合在原始要求中傳送至 sp_cursorprepare的值。

PARAMETERIZED_STMT 不應該指派給 scrollopt

無法提供相符的值會導致重新編譯計劃、否定準備和執行作業。

RPC 和 TDS 考慮

RPC RETURN_METADATA 輸入旗標可以設定為 1 ,要求 TDS 數據流中傳回數據指標選取清單元數據。