sp_cursorprepare (Transact-SQL)
將資料指標陳述式或批次編譯成一個執行計畫,但是不建立資料指標。 之後 sp_cursorexecute 可以使用編譯過的陳述式。 這個程序與 sp_cursorexecute 結合之後,擁有的功能與 sp_cursoropen, 相同,但是會分成兩個階段。 sp_cursorprepare 的叫用方式是在表格式資料流 (TDS) 封包中指定 ID = 3。
語法
sp_cursorprepare prepared_handle OUTPUT, params , stmt , options
[ , scrollopt [ , ccopt ] ]
引數
prepared_handle
SQL Server 產生的「控制代碼」(Handle) 識別碼,可傳回整數值。[!附註]
prepared_handle 後續會提供給 sp_cursorexecute 程序以便開啟資料指標。 一旦建立控制代碼之後,在您登出或是透過 sp_cursorunprepare 程序明確將它移除之前,它都會存在。
params
識別參數化的陳述式。 params 定義會替代陳述式中的參數標記。 params 是呼叫 ntext、nchar 或 nvarchar 輸入值的必要參數。 如果陳述式未參數化,則輸入 NULL 值。[!附註]
當 stmt 參數化而且 scrollopt PARAMETERIZED_STMT 值設定為 ON 時,使用 ntext 字串當做輸入值。
stmt
定義資料指標結果集。 stmt 是必要參數,而且會呼叫 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 可以指派與要求的值不同的值。
備註
RPC 狀態參數是下列其中一項:
值 |
說明 |
---|---|
0 |
成功 |
0x0001 |
失敗 |
1FF6 |
無法傳回中繼資料。
|
範例
當 stmt 參數化且 scrollopt PARAMETERIZED_STMT 值為 ON 時,字串的格式如下:
{ <local variable name> <data type> } [ ,…n ]
請參閱
參考
sp_cursorexecute (Transact-SQL)