共用方式為


sp_cursorprepare (Transact-SQL)

將資料指標陳述式或批次編譯成一個執行計畫,但是不建立資料指標。 之後 sp_cursorexecute 可以使用編譯過的陳述式。 這個程序與 sp_cursorexecute 結合之後,擁有的功能與 sp_cursoropen, 相同,但是會分成兩個階段。 sp_cursorprepare 的叫用方式是在表格式資料流 (TDS) 封包中指定 ID = 3。

主題連結圖示 Transact-SQL 語法慣例

語法

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

無法傳回中繼資料。

[!附註]

這是因為陳述式不會產生結果集,例如 INSERT 或 DDL 陳述式。

範例

當 stmt 參數化且 scrollopt PARAMETERIZED_STMT 值為 ON 時,字串的格式如下:

{ <local variable name> <data type> } [ ,…n ]

請參閱

參考

sp_cursorexecute (Transact-SQL)

sp_cursoropen (Transact-SQL)

sp_cursorunprepare (Transact-SQL)

系統預存程序 (Transact-SQL)