sql >> Databáze >  >> RDS >> Sqlserver

Hromadné DELETE na SQL Server 2008 (Existuje něco jako Bulk Copy (bcp) pro odstranění dat?)

Ne.

Chcete DELETE s klauzulí WHERE:toto je standardní SQL.

Co můžete udělat, je hromadné mazání takto:

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

Nebo pokud chcete odstranit velmi vysoké procento řádků...

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


  1. Když DISTINCT <> GROUP BY

  2. Plánovaná údržba databáze IS 24/7 na MS SQL Server

  3. 1052:Sloupec 'id' v seznamu polí je nejednoznačný

  4. SQL mezi operátory