Profitez des promotions incroyables de nos cours en pdf!! Ignorer
Dans ce cours , on va découvrir le mécanisme des curseurs (cursor tsql) : c’est quoi? pourquoi les utiliser? comment ?
Un curseur est un groupe d’enregistrements résultat de l’interrogation d’une base de données. L’intérêt d’utiliser des curseurs est de pouvoir faire des traitements ligne par ligne chose qui n’est pas possible avec une requête SQL simple
Syntaxe :
-Atteindre le premier enregistrement du curseur : first
– Atteindre l’enregistrement du curseur suivant celui en cours: next
– Atteindre l’enregistrement du curseur précédent celui en cours : Prior
– Atteindre le dernier enregistrement du curseur : Last
Remarque 1 :
– Atteindre l’enregistrement se trouvant à la position n dans le curseur :
Fetch absolute n from nom_curseur into variable1, variable2,…
– Atteindre l’enregistrement se trouvant après n positions de la ligne en cours :
Fetch Relative Num_Ligne from nom_curseur into variable1, variable2,…
Remarque 2 : La variable système @@fetch_status est utilisée pour détecter la fin du curseur. Tant que cette variable a la valeur 0, on a pas encore atteint la fin du curseur.
Exemple : soit la table article(numA,libelle,PU) . Afficher la liste des articles sous la forme : L’article Numéro … portant la désignation ….coûte .…
Solution :
Declare @a int, @b Varchar(10), @c float
Declare Cur_ListeArticle Cursor
for Select NumA, libelle,PU from article
Open Cur_ListeArticle
Fetch Next from Cur_ListeArt into @a,@b,@c
While @@fetch_status=0
Begin
Print ‘L’article numéro ‘ + convert(varchar,@a) + ‘ portant la
désignation ‘ + @b+ ‘ coûte ‘ + convert(varchar,@c)
Fetch Next from Cur_ListeArt into @a,@b,@c
End
Close Cur_ListeArticle
Deallocate Cur_ListeArticle
– CURSEURS AVANT UNIQUEMENT (sans scroll) : permettent de lire les lignes dans l’ordre (de la première jusq’à la dernière) .Utilise Next seulement
-CURSEURS DE DEFILEMENT : (scroll)
Toutes les options de FETCH sont autorisés
Bravo!! vous pouvez maintenant faire le TP de cette partie : TP6-Tsql-Curseurs
Vous pouvez suivre la liste des vidéos du cours base de données (Merise + Sql + Transact sql) sur notre chaine youtube : Vidéos Bases de données.