Normalement, SQL (Structured Query Language) demandes travaillent avec des ensembles complets de données. Cependant, il y a des moments où il peut être préférable ou même nécessaire pour travailler avec les données d'une ligne à la fois. Pour ces circonstances, les curseurs sont la meilleure option. Ils permettent une opération à effectuer sur chaque ligne d'un ensemble de données, un à la fois. Par exemple, les curseurs sont la meilleure façon de se déplacer à travers toute une série de données et d'appliquer une procédure à chaque ligne de l'ensemble. Toutefois, cela a un coût: les curseurs sont généralement beaucoup plus lent que d'autres opérations SQL.
Instructions
1 Tapez la commande suivante dans la console SQL Server pour déclarer le curseur:
DECLARE CURSOR Cursor1
2 Fournir une instruction SELECT qui récupère les données le curseur va travailler sur:
POUR
SELECT nom_famille
FROM employees
FOR UPDATE DE last_name
Cela permettra de récupérer une liste de last_names à partir d'une table des employés. Il précise également que vous serez mettez à jour le last_name que vous avancez dans les données du curseur.
3 Ouvrez le curseur en tapant ce qui suit:
OUVERT Cursor1
4 Commencez itérer les lignes en tapant la commande suivante:
FETCH SUIVANT DE Cursor1
EN @LASTNAME
TANDIS @@ FETCH_STATUS = 0
COMMENCER
5 Mettre à jour le dernier nom en tapant ce qui suit:
EXEC UPPER (@LASTNAME)
Ce sera réglé le dernier nom de la ligne actuelle il est donc dans toutes les lettres majuscules.
6 Fetch une autre ligne avant de terminer la boucle WHILE commencé à l'étape 4:
FETCH SUIVANT DE Cursor1
EN @LASTNAME
FIN
7 Fermez le curseur et libérer son nom afin qu'il puisse être utilisé à nouveau si nécessaire:
Cursor1 FERMER
Cursor1 DEALLOCATE
Conseils et avertissements
- Ce tutoriel utilise Microsoft SQL Server. La syntaxe peut changer très légèrement pour d'autres implémentations de SQL telles que MySQL.
- Les curseurs sont très lent par rapport à d'autres opérations dans SQL, elles doivent donc être utilisés qu'en cas de nécessité.