sql >> Databasteknik >  >> RDS >> Sqlserver

Bulk DELETE på SQL Server 2008 (Finns det något liknande Bulk Copy (bcp) för radering av data?)

Nej.

Du vill ha en DELETE med en WHERE-sats:detta är standard SQL.

Vad du kan göra är att radera batch så här:

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

Eller om du vill ta bort en mycket hög andel rader...

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


  1. returnera värde vid en position från STRING_SPLIT i SQL Server 2016

  2. Hur man får databasmetadata

  3. implodera en lista för användning i en python MySQLDB IN-sats

  4. Behöver lista alla triggers i SQL Server-databasen med tabellnamn och tabellens schema