Limitar el número de filas eliminadas mediante TOP
Actualizado: 5 de diciembre de 2005
Puede utilizar la cláusula TOP para limitar el número de filas que se eliminan en una instrucción DELETE. Cuando se utiliza una cláusula TOP (n) con DELETE, la operación de eliminación se realiza en una selección aleatoria de n número de filas.
Por ejemplo, la siguiente instrucción elimina 20
filas aleatorias de la tabla PurchaseOrderDetail
cuyas fechas de vencimiento sean anteriores al primero de julio de 2002.
USE AdventureWorks;
GO
DELETE TOP (20)
FROM Purchasing.PurchaseOrderDetail
WHERE DueDate < '20020701';
GO
Si necesita utilizar TOP para eliminar filas por un orden cronológico significativo, debe utilizarla junto con ORDER BY en una instrucción de subselección. La siguiente consulta elimina de la tabla PurchaseOrderDetail
las 10 filas con las fechas de vencimiento más antiguas. Para garantizar que sólo se eliminen 10 filas, la columna especificada en la instrucción de subselección (PurchaseOrderID
) es la clave principal de la tabla. El uso de una columna sin clave en la instrucción de subselección podría causar la eliminación de más de 10 filas si la columna especificada contiene valores duplicados.
USE AdventureWorks;
GO
DELETE FROM Purchasing.PurchaseOrderDetail
WHERE PurchaseOrderDetailID IN
(SELECT TOP 10 PurchaseOrderDetailID
FROM Purchasing.PurchaseOrderDetail
ORDER BY DueDate ASC);
GO
Vea también
Conceptos
Eliminar filas mediante DELETE
Eliminar todas las filas mediante TRUNCATE TABLE
Eliminar filas de conjuntos de resultados
Limitar los conjuntos de resultados con TOP y PERCENT
Otros recursos
TOP (Transact-SQL)
DELETE (Transact-SQL)
Eliminar datos de una tabla
Ayuda e información
Obtener ayuda sobre SQL Server 2005
Historial de cambios
Versión | Historial |
---|---|
5 de diciembre de 2005 |
|