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 值,則不論 中指定的 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 ,rowcount 代表要放入擷取緩衝區的數據列數目。 |
表示結果集中的數據列數目。 指定 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 數據流中傳回數據指標選取清單元數據。