Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Bulk DELETE w SQL Server 2008 (Czy istnieje coś takiego jak Bulk Copy (bcp) do usuwania danych?)

Nie.

Potrzebujesz DELETE z klauzulą ​​WHERE:to jest standardowy SQL.

To, co możesz zrobić, to usuwanie zbiorcze w ten sposób:

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

Lub jeśli chcesz usunąć bardzo wysoki procent wierszy...

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Serwer SQL wybiera różne wiersze, używając tylko najnowszych wartości

  2. Dziennik transakcji programu SQL Server, część 2:Architektura dziennika

  3. SQL Server 2016:sys.dm_exec_function_stats

  4. Połącz wiele wierszy w jeden ciąg tekstowy za pomocą grupowania

  5. Jak wygenerować pole automatycznego przyrostu w wybranym zapytaniu?