Limitation du nombre de lignes à supprimer avec la clause TOP
Mis à jour : 5 décembre 2005
Vous pouvez utiliser la clause TOP pour limiter le nombre de lignes à supprimer dans une instruction DELETE. Lorsqu'une clause TOP (n) est utilisée avec DELETE, l'opération de suppression est effectuée sur une sélection aléatoire de n lignes.
Par exemple, l'instruction suivante supprime de manière aléatoire 20
lignes de la table PurchaseOrderDetail
dont la date d'échéance est antérieure au 1er juillet 2002.
USE AdventureWorks;
GO
DELETE TOP (20)
FROM Purchasing.PurchaseOrderDetail
WHERE DueDate < '20020701';
GO
Si vous devez utiliser une clause TOP pour supprimer des lignes dans un ordre chronologique significatif, vous devez associer à cette clause TOP une clause ORDER BY dans une sous-sélection. La requête suivante supprime les 10 lignes de la table PurchaseOrderDetail
dont la date d'expiration est la plus proche. Pour garantir que seules 10 lignes sont supprimées, la colonne spécifiée dans l'instruction de sous-sélection (PurchaseOrderID
) constitue la clé primaire de la table. L'utilisation d'une colonne non-clé dans l'instruction de sous-sélection peut entraîner la suppression de plus de 10 lignes si la colonne spécifiée contient des valeurs dupliquées.
USE AdventureWorks;
GO
DELETE FROM Purchasing.PurchaseOrderDetail
WHERE PurchaseOrderDetailID IN
(SELECT TOP 10 PurchaseOrderDetailID
FROM Purchasing.PurchaseOrderDetail
ORDER BY DueDate ASC);
GO
Voir aussi
Concepts
Suppression de lignes au moyen de l'instruction DELETE
Suppression de toutes les lignes à l'aide de l'instruction TRUNCATE TABLE
Suppression de lignes dans des ensembles de résultats
Limitation des jeux de résultats à l'aide de TOP et de PERCENT
Autres ressources
TOP (Transact-SQL)
DELETE (Transact-SQL)
Suppression de données dans une table
Aide et Informations
Assistance sur SQL Server 2005
Historique des modifications
Version | Historique |
---|---|
5 décembre 2005 |
|