Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

DELETE em massa no SQL Server 2008 (Existe algo como cópia em massa (bcp) para excluir dados?)


Não.

Você quer um DELETE com uma cláusula WHERE:este é o SQL padrão.

O que você pode fazer é excluir em lote assim:
SELECT 'Starting' --sets @@ROWCOUNT
WHILE @@ROWCOUNT <> 0
    DELETE TOP (xxx) MyTable WHERE ...

Ou se você deseja remover uma porcentagem muito alta de linhas...
SELECT col1, col2, ... INTO #Holdingtable
           FROM MyTable WHERE ..opposite condition..
TRUNCATE TABLE MyTable
INSERT MyTable (col1, col2, ...)
           SELECT col1, col2, ... FROM #Holdingtable