|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : janvier 2011 Messages : 45 ![]() |
Bonjour à tous, je ne comprends pas pourquoi le curseur ci-dessous ne réalise pas les UPDATE nécessaires sur les produits de numéro 4...
Code :
Merci beaucoup ! |
||
|
|
00
|
|
|
#2 | ||||||
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 950 ![]() |
Pour mettre à jour dans un curseur, il faut utiliser un update avec position de ligne : CURRENT OF
Extrait de mon livre sur SQL : *** 7.3.2 mises à jour à travers un curseur Les données retournées par un curseur peuvent être mise à jour (INSERT, DELETE et UPDATE). Pour ce faire, il faut déclarer le curseur FOR UPDATE et éventuellement renseigner la liste des colonnes visée par la mise à jour. Dans le cas du DELETE et du UPDATE, pour que l'ordre de mise à jour porte sur la ligne courante ou le curseur est positionné, il faut utiliser dans la clause WHERE, l’expression CURRENT OF <nom_curseur>. Exemples : Code :
Supprime la ligne courante de la table sur laquelle le curseur C_USER est positionné. Il n'est pas nécessaire de préciser le nom de la table. Le curseur se positionne sur la ligne précédente. Code :
*** En sus point besoin d'un curseur qui est lent et non optimisable pour faire cette requête : Code :
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
||||||
|
00
|
Copyright © 2000-2012 - www.developpez.com