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é en spécifiant ID = 3 dans un paquet TDS (Tabular 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.
Notes
prepared_handle est ensuite fourni à une procédure de sp_cursorexecute afin d’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.
Notes
Utilisez une chaîne ntext comme valeur d’entrée lorsque stmt est paramétré et que la valeur scrollopt PARAMETERIZED_STMT est ACTIVÉE.
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 .
Notes
Les règles de spécification de la valeur stmt sont les mêmes que celles de sp_cursoropen, à l’exception du type de données stmt string 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 à la fois 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 (anciennement 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 scrollpt, SQL Server pouvez 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 | Opération réussie |
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 PARAMETERIZED_STMT scrollopt est ON, le format de la chaîne est le suivant :
{ <nom> de la 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.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour