Heim >Datenbank >MySQL-Tutorial >Gibt es in SQL Server 2008 einen Befehl zum Massenlöschen wie bcp für Einfügungen?

Gibt es in SQL Server 2008 einen Befehl zum Massenlöschen wie bcp für Einfügungen?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-04 22:04:40488Durchsuche

Is There a Bulk Delete Command in SQL Server 2008 Like bcp for Inserts?

Massenlöschung in SQL Server 2008: Eine Parallele zum Massenkopieren für Löschvorgänge

In dieser Untersuchung wurde die Notwendigkeit eines Massenlöschvorgangs festgestellt in SQL Server 2008 entsteht durch das Fehlen einer direkten Lösung, vergleichbar mit dem Bulk Copy-Vorgang (bcp) zum Löschen von Daten. Um diese Lücke zu schließen, suchen Benutzer nach einer Alternative, die eine Massenlöschung mit der Präzision einer WHERE-Klausel ermöglicht.

Die offizielle Antwort bestätigt das Fehlen eines speziellen Massenlöschungsbefehls in SQL Server. Es bietet jedoch praktische Alternativen, um das gewünschte Ergebnis zu erzielen.

Batch-Löschungen

Ein Ansatz besteht darin, Batch-Löschungen mit der folgenden Syntax auszuführen:

SELECT 'Starting' --sets @@ROWCOUNT
WHILE @@ROWCOUNT <> 0
    DELETE TOP (xxx) MyTable WHERE ...

Dadurch können Sie eine Stapelgröße (xxx) angeben und Zeilen iterativ löschen, bis keine Zeilen mehr vorhanden sind bleiben.

Alternative Löschstrategie zum Löschen der meisten Zeilen

In Szenarien, in denen ein großer Prozentsatz der Zeilen entfernt werden muss, besteht ein effizienterer Ansatz darin, die folgenden Schritte zu verwenden :

SELECT col1, col2, ... INTO #Holdingtable
           FROM MyTable WHERE ..opposite condition..
TRUNCATE TABLE MyTable
INSERT MyTable (col1, col2, ...)
           SELECT col1, col2, ... FROM #Holdingtable

Dazu gehört das Erstellen einer temporären Haltetabelle mit den Zeilen, die nicht gelöscht werden sollen, und das anschließende Abschneiden der Haupttabelle. Abschließend werden die Daten aus der Haltetabelle wieder in die Haupttabelle eingefügt.

Das obige ist der detaillierte Inhalt vonGibt es in SQL Server 2008 einen Befehl zum Massenlöschen wie bcp für Einfügungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn