Compartir a través de


Eliminar filas de conjuntos de resultados

Las API ADO, OLE DB y ODBC permite eliminar la fila actual en la que está colocada una aplicación en un conjunto de resultados. La aplicación ejecuta una instrucción y, a continuación, recupera las filas del conjunto de resultados. Una vez que la aplicación ha recuperado la fila, puede utilizar las siguientes funciones o métodos para eliminarla:

  • Las aplicaciones ADO utilizan el método Delete del objeto Recordset.
  • Las aplicaciones OLE DB utilizan el método DeleteRows de la interfaz IRowsetChange.
  • Las aplicaciones ODBC utilizan la función SQLSetPos con la opción SQL_DELETE.
  • Las aplicaciones de bibliotecas de bases de datos utilizan dbcursor para realizar una operación CRS_DELETE.

Las secuencias de comandos, procedimientos almacenados y desencadenadores de Transact-SQL pueden utilizar la cláusula WHERE CURRENT OF en una instrucción DELETE para eliminar la fila de cursor en la que se encuentran. En el ejemplo siguiente se elimina una sola fila de la tabla EmployeePayHistory mediante un cursor denominado complex_cursor. DELETE sólo afecta a la única fila que se recupera actualmente del cursor.

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

Vea también

Conceptos

Eliminar filas mediante DELETE
Eliminar todas las filas mediante TRUNCATE TABLE
Limitar el número de filas eliminadas mediante TOP

Otros recursos

DELETE (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005