Condividi tramite


Impostazione di limiti per le righe eliminate utilizzando la clausola TOP

Data aggiornamento: 5 dicembre 2005

È possibile utilizzare la clausola TOP per limitare il numero di righe eliminate in un'istruzione DELETE. Quando si utilizza una clausola TOP (n) con l'istruzione DELETE, l'operazione di eliminazione viene eseguita su una selezione casuale di un numero n di righe.

L'istruzione seguente, ad esempio, elimina dalla tabella PurchaseOrderDetail``20 righe casuali contenenti scadenze precedenti alla data 1 luglio 2002.

USE AdventureWorks;
GO
DELETE TOP (20) 
FROM Purchasing.PurchaseOrderDetail
WHERE DueDate < '20020701';
GO

Se si desidera utilizzare TOP per eliminare righe in un ordine cronologico significativo, è necessario utilizzare questa clausola insieme a ORDER BY in un'istruzione di selezione secondaria. Tramite la query seguente vengono eliminate le 10 righe della tabella PurchaseOrderDetail contenenti le date di scadenza più imminenti. Per assicurarsi che vengano eliminate solo 10 righe, la colonna specificata nell'istruzione di selezione secondaria (PurchaseOrderID) è la chiave primaria della tabella. L'utilizzo di una colonna non chiave nell'istruzione di selezione secondaria può avere come conseguenza l'eliminazione di più di 10 righe se la colonna specificata contiene valori duplicati.

USE AdventureWorks;
GO
DELETE FROM Purchasing.PurchaseOrderDetail
WHERE PurchaseOrderDetailID IN
   (SELECT TOP 10 PurchaseOrderDetailID 
    FROM Purchasing.PurchaseOrderDetail 
    ORDER BY DueDate ASC);
GO

Vedere anche

Concetti

Eliminazione di righe utilizzando l'istruzione DELETE
Eliminazione di tutte le righe con l'istruzione TRUNCATE TABLE
Eliminazione di righe dai set di risultati
Limitazione di set di risultati tramite le clausole TOP e PERCENT

Altre risorse

TOP (Transact-SQL)
DELETE (Transact-SQL)
Eliminazione di dati in una tabella

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

5 dicembre 2005

Nuovo contenuto:
  • Aggiunta di informazioni sull'impostazione di una chiave primaria quando si utilizza un'istruzione di selezione secondaria con una clausola ORDER BY.