sp_cursorexecute (Transact-SQL)

S’applique à :SQL Server

Crée et remplit un curseur basé sur le plan d'exécution créé par sp_cursorprepare. Cette procédure, associée à sp_cursorprepare, a la même fonction que sp_cursoropen, mais est divisée en deux phases. sp_cursorexecute est appelé en spécifiant l’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. prepared_handle est un paramètre obligatoire qui appelle une valeur d’entrée int .

cursor
Identificateur de curseur généré par le SQL Server. cursor est un paramètre obligatoire qui doit être fourni sur toutes les procédures suivantes qui agissent sur le curseur, telles que sp_cursorfetch

scrollopt
Option de défilement. scrollopt est un paramètre facultatif qui nécessite une valeur d’entrée int . Le paramètresp_cursorexecute scrollopt a les mêmes options de valeur que celles de sp_cursoropen.

Notes

La valeur PARAMETERIZED_STMT n'est pas prise en charge.

Important

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 des devises. ccopt est un paramètre facultatif qui nécessite une valeur d’entrée int . Le paramètreccopt sp_cursorexecute a les mêmes options de valeur que celles de sp_cursoropen.

Important

Si aucune valeur ccopt n’est spécifiée, la valeur par défaut est OPTIMISTE, quelle que soit la valeur ccopt spécifiée dans sp_cursorprepare.

Rowcount
Paramètre optionnel qui indique le nombre de lignes de 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
Lorsque AUTO_FETCH est spécifié avec FAST_FORWARD 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 de AUTO_FETCH scrollopt est spécifiée, rowcount retourne le nombre de lignes qui ont été extraites dans la mémoire tampon d’extraction.

bound_param
Indique l'utilisation facultative de paramètres supplémentaires.

Notes

Tous les paramètres après le cinquième sont passés au plan d'instruction comme paramètres d'entrée.

Valeur de retour de code

rowcount peut retourner les valeurs suivantes.

Valeur Description
-1 Nombre de lignes inconnues.
-n Un remplissage asynchrone est appliqué.

Remarques

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 des paramètres scrollopt et ccopt doivent correspondre aux valeurs envoyées dans la demande d’origine à sp_cursorprepare.

Notes

PARAMETERIZED_STMT ne doit pas être affecté à scrollopt.

L'incapacité à fournir des valeurs correspondantes entraînera la recompilation des plans, annulant ainsi les opérations de préparation et d'exécution.

Éléments RPC et TDS à prendre en considération

Il est possible d'affecter à l'indicateur d'entrée RPC RETURN_METADATA la valeur 1 pour demander que les métadonnées relatives à la liste de sélection du curseur soient retournées dans le flux TDS.

Voir aussi

sp_cursoropen (Transact-SQL)
sp_cursorfetch (Transact-SQL)
Procédures stockées système (Transact-SQL)