Share via


Eliminazione di righe dai set di risultati

Le API ADO, OLE DB e ODBC supportano l'eliminazione della riga corrente su cui l'applicazione è posizionata in un set di risultati. L'applicazione esegue un'istruzione, quindi recupera le righe corrispondenti dal set di risultati. Dopo il recupero di una riga, è possibile eliminarla utilizzando le funzioni o i metodi seguenti:

  • Il metodo Delete dell'oggetto Recordset in applicazioni ADO.
  • Il metodo DeleteRows dell'interfaccia IRowsetChange in applicazioni OLE DB.
  • La funzione SQLSetPos con l'opzione SQL_DELETE in applicazioni ODBC.
  • La funzione dbcursor per l'esecuzione di un'operazione CRS_DELETE in applicazioni DB-library.

Gli script, le stored procedure e i trigger Transact-SQL possono utilizzare la clausola WHERE CURRENT OF in un'istruzione DELETE per eliminare la riga del cursore in cui sono posizionati. Nell'esempio seguente viene eliminata una singola riga dalla tabella EmployeePayHistory utilizzando un cursore denominato complex_cursor. L'istruzione DELETE ha effetto solo sulla riga corrente recuperata dal cursore.

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;
DELETE FROM HumanResources.EmployeePayHistory
WHERE CURRENT OF complex_cursor;
CLOSE complex_cursor;
DEALLOCATE complex_cursor;
GO

Vedere anche

Concetti

Eliminazione di righe utilizzando l'istruzione DELETE
Eliminazione di tutte le righe con l'istruzione TRUNCATE TABLE
Impostazione di limiti per le righe eliminate utilizzando la clausola TOP

Altre risorse

DELETE (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005