Löschen der obersten 1000 Zeilen aus einer SQL Server 2008-Tabelle
In SQL Server 2008 können Sie die obersten 1000 Datensätze effizient aus einer Tabelle löschen Tabelle mithilfe einer Kombination aus einem allgemeinen Tabellenausdruck (CTE) und einer anschließenden Löschanweisung. So funktioniert es:
Ursprüngliche problematische Abfrage:
Der Code, den Sie ursprünglich versucht haben, löscht alle Zeilen in der Tabelle, da er aus zwei separaten Anweisungen besteht: a delete gefolgt von eine Auswahl. Die SELECT-Anweisung gibt kein Sortierkriterium an, was zur Löschung aller Zeilen führt.
Korrigierter Code mit CTE:
Um dieses Problem zu beheben, verwenden wir einen CTE mit dem Namen „CTE“, um die obersten 1000 Zeilen in aufsteigender Reihenfolge basierend auf der Spalte „a1“ auszuwählen. Die anschließende Löschanweisung zielt dann auf den CTE ab und stellt sicher, dass nur diese spezifischen Datensätze entfernt werden:
;WITH CTE AS ( SELECT TOP 1000 * FROM [mytab] ORDER BY a1 ) DELETE FROM CTE
Mit dieser Methode können Sie die gewünschte Anzahl von Zeilen effizient aus der Tabelle löschen, ohne die verbleibenden Datensätze zu beeinträchtigen.
Das obige ist der detaillierte Inhalt vonWie lösche ich effizient die obersten 1000 Zeilen aus einer SQL Server 2008-Tabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!