Heim >Datenbank >MySQL-Tutorial >Gibt es in SQL Server 2008 einen Befehl zum Massenlöschen wie bcp für Einfügungen?
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!