sp_cursorprepexec (Transact-SQL)
Compila un piano per il batch o l'istruzione di cursore inviata, quindi crea e popola il cursore. sp_cursorprepexec consente di combinare le funzioni di sp_cursorprepare e sp_cursorexecute. Questa routine viene richiamata specificando ID = 5 in un pacchetto del flusso TDS.
Si applica a: SQL Server (da SQL Server 2008 a versione corrente). |
Convenzioni della sintassi Transact-SQL
Sintassi
sp_cursorprepexec prepared handle OUTPUT, cursor OUTPUT, params , statement , options
[ , scrollopt [ , ccopt [ , rowcount ] ] ]
Argomenti
prepared handle
Identificatore dell'handle preparato generato da SQL Server. prepared handle è obbligatorio e restituisce int.cursor
Identificatore del cursore generato da SQL Server. cursor è un parametro obbligatorio che deve essere fornito in tutte le routine successive che agiscono su questo cursore, ad esempio sp_cursorfetch.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 .Nota
Utilizzare una stringa ntext come valore di input se stmt è con parametri e il valore PARAMETERIZED_STMT di scrollopt è ON.
statement
Definisce il set di risultati del cursore. Il parametro statement è 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
L'opzione richiesta potrebbe non essere appropriata per il cursore definito da <stmt>, pertanto questo parametro funge sia da input sia da output. In casi di questo tipo, SQL Server assegna un tipo appropriato e modifica questo valore.
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.
rowcount
Parametro facoltativo che indica il numero di righe del buffer di recupero da utilizzare con AUTO_FETCH. Il valore predefinito è 20 righe. rowcount si comporta in modo diverso quando viene assegnato come valore di input rispetto a quando viene assegnato come valore restituito.Come valore di input
Come valore restituito
Quando viene specificato il valore AUTO_FETCH con i cursori FAST_FORWARD, rowcount rappresenta il numero di righe da inserire nel buffer di recupero.
Rappresenta il numero di righe nel set di risultati. Quando viene specificato il valore AUTO_FETCH per scrollopt, rowcount restituisce il numero di righe recuperate nel buffer di recupero.
Valori restituiti
Se params restituisce un valore NULL, l'istruzione non è con parametri.
Vedere anche
Riferimento
sp_cursorexecute (Transact-SQL)