Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Bulk DELETE sur SQL Server 2008 (existe-t-il quelque chose comme Bulk Copy (bcp) pour supprimer des données ?)

Non.

Vous voulez un DELETE avec une clause WHERE :c'est du SQL standard.

Ce que vous pouvez faire, ce sont des suppressions par lots comme ceci :

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

Ou si vous souhaitez supprimer un pourcentage très élevé de lignes...

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