Modifica dei dati tramite un cursore
Le API ADO, OLE DB e ODBC supportano l'aggiornamento della riga su cui l'applicazione è posizionata in un set di risultati. I passaggi principali del processo sono i seguenti:
- Associare le colonne del set di risultati a variabili di programma.
- Eseguire la query.
- Eseguire le funzioni o i metodi API per posizionare l'applicazione in una riga del set di risultati.
- Inserire nelle variabili di programma associate i valori dei dati per le colonne da aggiornare.
- Chiamare una delle funzioni o dei metodi seguenti per inserire la riga:
- In ADO, chiamare il metodo Update dell'oggetto Recordset.
- In OLE DB, chiamare il metodo SetData dell'interfacciaIRowsetChange.
- In ODBC, chiamare la funzione SQLSetPos con l'opzione SQL_UPDATE.
Quando si utilizza un cursore del server Transact-SQL, è possibile aggiornare la riga corrente tramite un'istruzione UPDATE che include una clausola WHERE CURRENT OF. Le modifiche apportate tramite la clausola verranno applicate solo alla riga in cui è posizionato il cursore. Se un cursore è basato su un join, viene modificato solo il valore table_name specificato nell'istruzione UPDATE. Le altre tabelle interessate dal cursore rimangono invariate.
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
Per ulteriori informazioni sui join, vedere Nozioni fondamentali sui join.
Vedere anche
Concetti
Modifica di dati con l'istruzione UPDATE
Modifica di dati di tipo ntext, text o image