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_cursorexecuteparamè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.