共用方式為


sp_cursorexecute (Transact-SQL)

根據 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 傳回的準備陳述式「控制代碼」(Handle) 值。 prepared_handle 是呼叫 int 輸入值的必要參數。

  • cursor
    這是 SQL Server 產生的資料指標識別碼。 cursor 是必要的參數,在處理資料指標的所有後續程序上都必須提供這個參數,像是sp_cursorfetch

  • scrollopt
    捲動選項。 scrollopt 是需要 int 輸入值的選擇性參數。 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 的行為會有所不同。

    當做輸入值

    當做傳回值

    當 AUTO_FETCH 與 FAST_FORWARD 資料指標一起指定時,rowcount 代表要放入提取緩衝區內的資料列數目。

    代表結果集中的資料列數目。 當指定 scrollopt AUTO_FETCH 值時,rowcount 會傳回提取到提取緩衝區中的資料列數目。

  • bound_param
    指定選擇性使用其他參數。

    [!附註]

    第五個之後的任何參數都會當做輸入參數傳遞給陳述式計畫。

程式碼傳回值

rowcount 可能會傳回下列值。

說明

-1

未知的資料列數目。

-n

非同步擴展在作用中。

備註

scrollopt 和 ccopt 參數

當針對伺服器快取先取得快取計畫時,也就是必須重新編譯識別陳述式的備妥控制代碼時,scrollopt 和 ccopt 會很有用處。 scrollopt 和 ccopt 參數值必須符合在 sp_cursorprepare 的原始要求中傳送的值。

[!附註]

PARAMETERIZED_STMT 不應該指派給 scrollopt。

當無法提供相符的值時將會導致重新編譯計劃,取消準備和執行作業。

RPC 和 TDS 考量

RPC RETURN_METADATA 輸入旗標可以設定為 1,要求在 TDS 資料流中傳回資料指標選取清單中繼資料。

請參閱

參考

sp_cursoropen (Transact-SQL)

sp_cursorfetch (Transact-SQL)

系統預存程序 (Transact-SQL)