sp_cursorexecute (Transact-SQL)
適用於:SQL Server
根據sp_cursorprepare所建立的執行計畫,建立並填入資料指標。 此程式加上sp_cursorprepare,具有與sp_cursoropen相同的函式,但會分割成兩個階段。 在表格式資料流程 (TDS) 封包中指定 ID =4 來叫用sp_cursorexecute。
語法
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_cursorexecute scrollopt 參數的值選項與sp_cursoropen的值選項相同。
注意
不支援PARAMETERIZED_STMT值。
重要
如果未指定 scrollopt 值,則不論sp_cursorprepare中指定的 scrollopt 值為何,預設值都是 KEYSET 。
ccopt
貨幣控制選項。 ccopt 是選擇性參數,需要 int 輸入值。 sp_cursorexecute ccopt 參數的值選項與sp_cursoropen的值選項相同。
重要
如果未指定 ccopt 值,則 不論sp_cursorprepare中指定的 ccopt 值為何,預設值都是 OPTIMISTIC。
rowcount
這是選擇性參數,表示要搭配AUTO_FETCH使用的擷取緩衝區資料列數目。 預設值為 20 個數據列。 當指派為輸入值與傳回值時,rowcount 的行為會有所不同。
作為輸入值 | 作為傳回值 |
---|---|
使用 FAST_FORWARD資料指標 資料列計數 指定AUTO_FETCH時,代表要放入提取緩衝區的資料列數目。 | 表示結果集中的資料列數目。 指定 scrollopt AUTO_FETCH 值時, rowcount 會傳回擷取至提取緩衝區的資料列數目。 |
bound_param
表示選擇性地使用其他參數。
注意
第五個之後的任何參數會以輸入參數的形式傳遞至語句計畫。
程式碼傳回值
rowcount 可能會傳回下列值。
值 | Description |
---|---|
-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)
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應