sp_cursorexecute (Transact-SQL)
S’applique à : SQL Server
Crée et remplit un curseur en fonction du plan d’exécution créé par sp_cursorprepare
. Cette procédure, couplée avec sp_cursorprepare
, a la même fonction que sp_cursoropen
, mais est divisée en deux phases. sp_cursorexecute
est appelé en spécifiant ID = 4
dans un paquet TDS (Tabular Data Stream).
Conventions de la syntaxe Transact-SQL
Syntaxe
sp_cursorexecute prepared_handle , cursor
[ , scrollopt [ OUTPUT ]
[ , ccopt [ OUTPUT ]
[ , rowcount OUTPUT [ , bound param ] [ , ...n ] ] ] ]
[ ; ]
Arguments
prepared_handle
Valeur de handle d’instruction préparée retournée par sp_cursorprepare
. Le paramètre prepared_handle est int et ne peut pas être NULL
.
cursor
Identificateur de curseur généré par Moteur de base de données. le curseur est un paramètre obligatoire qui doit être fourni sur toutes les procédures suivantes qui agissent sur le curseur, comme sp_cursorfetch
.
scrollopt
Option de défilement. Le paramètre scrollopt est int, avec la valeur par défaut NULL
. Le sp_cursorexecute
paramètre scrollopt a les mêmes options de valeur que sp_cursoropen
.
La PARAMETERIZED_STMT
valeur n’est pas prise en charge.
Si aucune valeur scrollopt n’est spécifiée, la valeur par défaut est KEYSET
quelle que soit la valeur scrollopt spécifiée dans sp_cursorprepare
.
ccopt
Option de contrôle monétaire. ccopt est un paramètre facultatif qui nécessite une valeur d’entrée int . Le sp_cursorexecute
paramètre ccopt a les mêmes options de valeur que sp_cursoropen
.
Si aucune valeur ccopt n’est spécifiée, la valeur par défaut est OPTIMISTIC
quelle que soit la valeur ccopt spécifiée dans sp_cursorprepare
.
rowcount
Paramètre facultatif qui indique le nombre de lignes de mémoire tampon d’extraction à utiliser avec AUTO_FETCH
. La valeur par défaut est de 20 lignes. rowcount se comporte différemment lorsqu’il est affecté en tant que valeur d’entrée par rapport à une valeur de retour.
Comme une valeur d'entrée | Comme une valeur de retour |
---|---|
Lorsqu’il AUTO_FETCH est spécifié avec FAST_FORWARD des curseurs, rowcount représente le nombre de lignes à placer dans la mémoire tampon d’extraction. |
Représente le nombre de lignes dans le jeu de résultats. Lorsque la valeur scrollopt AUTO_FETCH est spécifiée, le nombre de lignes retourne le nombre de lignes extraites dans la mémoire tampon d’extraction. |
bound_param
Signifie l’utilisation facultative de paramètres supplémentaires.
Tous les paramètres après le cinquième sont passés au plan d'instruction comme paramètres d'entrée.
Valeurs des codes de retour
rowcount retourne les valeurs suivantes.
Valeur | Description |
---|---|
-1 |
Nombre de lignes inconnues. |
-n |
Un remplissage asynchrone est appliqué. |
Notes
Paramètres scrollopt et ccopt
scrollopt et ccopt sont utiles lorsque les plans mis en cache sont préemptés pour le cache du serveur, ce qui signifie que le handle préparé identifiant l’instruction doit être recompilé. Les valeurs de paramètre scrollopt et ccopt doivent correspondre aux valeurs envoyées dans la requête d’origine à sp_cursorprepare
.
PARAMETERIZED_STMT
ne doit pas être affecté à scrollopt.
L’échec de la fourniture de valeurs correspondantes entraîne la recompilation des plans, la négation des opérations de préparation et d’exécution.
Éléments RPC et TDS à prendre en considération
L’indicateur d’entrée RPC RETURN_METADATA
peut être défini pour 1
demander que les métadonnées de liste de sélection de curseur soient retournées dans le flux TDS.