Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Massenlöschung auf SQL Server 2008 (Gibt es so etwas wie Massenkopie (bcp) zum Löschen von Daten?)

Nein.

Sie wollen ein DELETE mit einer WHERE-Klausel:das ist Standard-SQL.

Was Sie tun können, sind Stapellöschungen wie folgt:

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

Oder wenn Sie einen sehr hohen Prozentsatz an Zeilen entfernen möchten...

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