sp_cursorprepare (Transact-SQL)
Compila il batch o l'istruzione del cursore in un piano di esecuzione, ma non crea il cursore. L'istruzione compilata può essere utilizzata in un secondo momento da sp_cursorexecute. Questa procedura, associata a sp_cursorexecute, ha la stessa funzione di sp_cursoropen, ma è suddivisa in due fasi. sp_cursorprepare viene richiamata specificando ID = 3 in un pacchetto del flusso TDS.
Convenzioni della sintassi Transact-SQL
Sintassi
sp_cursorprepare prepared_handle OUTPUT, params , stmt , options
[ , scrollopt [ , ccopt ] ]
Argomenti
prepared_handle
Identificatore dell'handle preparato generato da SQL Server che restituisce un valore intero.[!NOTA]
prepared_handle viene fornito successivamente a una routine sp_cursorexecute per aprire un cursore. Dopo essere stato creato, un handle esiste finché non si esegue la disconnessione o finché non viene rimosso in modo esplicito tramite la routine sp_cursorunprepare.
params
Identifica le istruzioni con parametri. La definizione params delle variabili viene sostituita per i marcatori di parametro nell'istruzione. params è un parametro obbligatorio che richiede un valore di input ntext, nchar o nvarchar . Immettere un valore NULL se l'istruzione non è con parametri.[!NOTA]
Utilizzare una stringa ntext come valore di input se stmt è con parametri e il valore PARAMETERIZED_STMT di scrollopt è ON.
stmt
Definisce il set di risultati del cursore. Il parametro stmt è obbligatorio e richiede un valore di input ntext, nchar oppure nvarchar.[!NOTA]
Le regole per la specifica del valore stmt sono le stesse di quelle per sp_cursoropen, con l'eccezione che i dati di tipo stringa stmt devono essere ntext.
options
Parametro facoltativo tramite cui viene restituita una descrizione delle colonne dei set di risultati del cursore. Per options è necessario il valore di input int seguente.Valore
Descrizione
0x0001
RETURN_METADATA
scrollopt
Opzione di scorrimento. scrollopt è un parametro facoltativo che richiede uno dei valori di input int seguenti.Valore
Descrizione
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
Il valore richiesto potrebbe non essere appropriato per il cursore definito da stmt, pertanto questo parametro funge sia da input sia da output. In questi casi, SQL Server assegna un valore appropriato.
ccopt
Opzioni del controllo della concorrenza. ccopt è un parametro facoltativo che richiede uno dei valori di input int seguenti.Valore
Descrizione
0x0001
READ_ONLY
0x0002
SCROLL_LOCKS (precedentemente noto come LOCKCC)
0x0004
OPTIMISTIC (precedentemente noto come OPTCC)
0x0008
OPTIMISTIC (precedentemente noto come 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
Come accade per scrollpt, SQL Server può assegnare un valore diverso da quello richiesto.
Osservazioni
Il parametro di stato RPC è uno degli elementi seguenti:
Valore |
Descrizione |
---|---|
0 |
Success |
0x0001 |
Failure |
1FF6 |
Non è stato possibile restituire metadati.
|
Esempi
Quando stmt dispone di parametri e il valore PARAMETERIZED_STMT di scrollopt è ON, il formato della stringa è il seguente:
{ <local variable name> <data type> } [ ,…n ]
Vedere anche
Riferimento
sp_cursorexecute (Transact-SQL)