sp_cursorprepare (Transact-SQL)
S'applique à : SQL Server
Compile le lot ou l'instruction de curseur dans un plan d'exécution, mais ne crée pas le curseur. L'instruction compilée peut être utilisée ultérieurement par sp_cursorexecute. Cette procédure, associée à sp_cursorexecute, a la même fonction que sp_cursoropen, mais est divisée en deux phases. sp_cursorprepare est appelée en spécifiant l’ID = 3 dans un paquet TDS (Tabulaire Data Stream).
Conventions de la syntaxe Transact-SQL
Syntaxe
sp_cursorprepare prepared_handle OUTPUT , params , stmt , options
[ , scrollopt [ , ccopt ] ]
[ ; ]
Arguments
prepared_handle
Identificateur de handle préparé généré par SQL Server qui retourne une valeur entière.
Remarque
prepared_handle est ensuite fourni à une procédure de sp_cursorexecute pour ouvrir un curseur. Une fois un handle créé, il existe jusqu'à ce que vous vous déconnectiez ou que vous le supprimiez de façon explicite par le biais d'une procédure sp_cursorunprepare.
params
Identifie des instructions paramétrables. La définition params des variables est remplacée par les marqueurs de paramètres dans l’instruction. params est un paramètre obligatoire qui appelle une valeur d’entrée ntext, nchar ou nvarchar . Entrez une valeur NULL si l'instruction n'est pas paramétrable.
Remarque
Utilisez une chaîne ntext comme valeur d’entrée lorsque stmt est paramétré et que la valeur de défilement PARAMETERIZED_STMT est ON.
stmt
Définit le jeu de résultats de curseur. Le paramètre stmt est requis et appelle une valeur d’entrée ntext, nchar ou nvarchar .
Remarque
Les règles de spécification de la valeur stmt sont identiques à celles de sp_cursoropen, à l’exception que le type de données de chaîne stmt doit être ntext.
options
Paramètre optionnel qui retourne une description des colonnes du jeu de résultats du curseur. les options nécessitent la valeur d’entrée int suivante.
Valeur | Description |
---|---|
0x0001 | RETURN_METADATA |
scrollopt
Option de défilement. scrollopt est un paramètre facultatif qui nécessite l’une des valeurs d’entrée int suivantes.
Valeur | Description |
---|---|
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 |
Étant donné que la valeur demandée peut ne pas convenir au curseur défini par stmt, ce paramètre sert d’entrée et de sortie. Dans de tels cas, SQL Server affecte une valeur appropriée.
ccopt
Option de contrôle en matière d'accès concurrentiel. ccopt est un paramètre facultatif qui nécessite l’une des valeurs d’entrée int suivantes.
Valeur | Description |
---|---|
0x0001 | READ_ONLY |
0x0002 | SCROLL_LOCKS (précédemment appelé LOCKCC) |
0x0004 | OPTIMISTE (précédemment appelé OPTCC) |
0x0008 | OPTIMISTIC (précédemment appelé 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 |
Comme avec le défilement, SQL Server peut affecter une valeur différente de celle demandée.
Notes
Le paramètre d'état RPC prend l'une des valeurs suivantes :
Valeur | Description |
---|---|
0 | Réussite |
0x0001 | Échec |
1FF6 | Impossible de retourner des métadonnées. Remarque : La raison en est que l’instruction ne produit pas de jeu de résultats ; par exemple, il s’agit d’une instruction INSERT ou DDL. |
Exemples
Voici un exemple d’utilisation de sp_cursorprepare et de sp_cursorexecute
declare @handle int , @p5 int, @p6 int
exec sp_cursorprepare @handle OUTPUT,
N'@dbid int',
N'select * from sys.databases where database_id < @dbid',
1,
@p5 output,
@p6 output
declare @p1 int
set @P1 = @handle
declare @p2 int
declare @p3 int
declare @p4 int
set @P6 = 4
exec sp_cursorexecute @p1, @p2 OUTPUT, @p3 output , @p4 output, @p5 OUTPUT, @p6
exec sp_cursorfetch @P2
exec sp_cursorunprepare @handle
exec sp_cursorclose @p2
Lorsque stmt est paramétré et que la valeur de défilement PARAMETERIZED_STMT est ACTIVÉE, le format de la chaîne est le suivant :
{ <nom> de variable locale**<type de> données } [ ,...n ]
Voir aussi
sp_cursorexecute (Transact-SQL)
sp_cursoropen (Transact-SQL)
sp_cursorunprepare (Transact-SQL)
Procédures stockées système (Transact-SQL)
Commentaires
https://aka.ms/ContentUserFeedback.
Prochainement : Tout au long de l'année 2024, nous supprimerons progressivement les GitHub Issues en tant que mécanisme de retour d'information pour le contenu et nous les remplacerons par un nouveau système de retour d'information. Pour plus d’informations, voir:Soumettre et afficher des commentaires pour