Modification des données au moyen d'un curseur

Les interfaces de programmation d'applications (API) ADO, OLE DB et ODBC prennent en charge la mise à jour de la ligne sur laquelle l'application est positionnée dans un ensemble de résultats. Le processus fondamental se compose des étapes suivantes :

  1. Liez les colonnes de l'ensemble de résultats aux variables de programme.
  2. Exécutez la requête.
  3. Appelez les fonctions ou méthodes API pour positionner l'application sur une ligne précise de l'ensemble de résultats.
  4. Renseignez les variables de programme liées avec les nouvelles valeurs de données des colonnes à mettre à jour.
  5. Appelez l'une des fonctions ou méthodes suivantes pour insérer la ligne :
    • Dans ADO, appelez à la méthode Update de l'objet Recordset.
    • Dans OLE DB, appelez la méthode SetData de l'interface IRowsetChange.
    • Dans ODBC, appelez la fonction SQLSetPos avec l'option SQL_UPDATE.

Lorsque vous utilisez un curseur de serveur Transact-SQL, vous pouvez mettre à jour la ligne active au moyen d'une instruction UPDATE comprenant une clause WHERE CURRENT OF. Les modifications apportées au moyen de cette clause n'affectent que la ligne sur laquelle le curseur est positionné. Dans le cas d'un curseur basé sur une jointure, seul le paramètre table_name spécifié dans l'instruction UPDATE est modifié. Les autres tables participant au curseur ne sont pas affectées.

USE AdventureWorks;
GO
DECLARE complex_cursor CURSOR FOR
    SELECT a.EmployeeID
    FROM HumanResources.EmployeePayHistory AS a
    WHERE RateChangeDate <> 
         (SELECT MAX(RateChangeDate)
          FROM HumanResources.EmployeePayHistory AS b
          WHERE a.EmployeeID = b.EmployeeID) ;
OPEN complex_cursor;
FETCH FROM complex_cursor;
UPDATE HumanResources.EmployeePayHistory
SET PayFrequency = 2 
WHERE CURRENT OF complex_cursor;
CLOSE complex_cursor;
DEALLOCATE complex_cursor;
GO

Pour plus d'informations sur les jointures, consultez Principes de base des jointures.

Voir aussi

Concepts

Modification des données au moyen de l'instruction UPDATE
Modification de données ntext, text et image

Autres ressources

UPDATE (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005