SQL Server 테이블에서 대량 작업을 수행하는 동안 널리 사용되는 것과 유사한 대량 삭제 작업을 수행하는 방법이 있는지 궁금해하는 경우가 많습니다. 삽입 작업에 사용되는 효율적인 대량 복사(bcp) 도구입니다. 이 질문은 SQL Server에 전용 대량 삭제 기능이 없기 때문에 발생합니다.
안타깝게도 대답은 부정적입니다. SQL Server는 대량 데이터 삭제를 위해 bcp와 같은 직접적인 메커니즘을 제공하지 않습니다. WHERE 절을 사용하여 삭제 작업의 영향을 받는 행을 제한하려는 경우 필터링 없이 테이블의 모든 행을 삭제하는 TRUNCATE 명령을 사용할 수 없습니다.
대체 접근 방법
대량 삭제 유틸리티가 없는 경우 사용할 수 있는 몇 가지 대체 접근 방식이 있습니다. take:
일괄 삭제:
테이블 교체:
예:
-- Batched Deletes SELECT 'Starting' --sets @@ROWCOUNT WHILE @@ROWCOUNT <> 0 DELETE TOP (1000) MyTable WHERE ... -- Table Swap SELECT col1, col2, ... INTO #Holdingtable FROM MyTable WHERE ..opposite condition.. TRUNCATE TABLE MyTable INSERT MyTable (col1, col2, ...) SELECT col1, col2, ... FROM #Holdingtable
이러한 대체 접근 방식이 항상 전용 벌크와 동일한 성능을 제공하는 것은 아니라는 점을 기억하세요. 삭제 기능. 그러나 WHERE 절을 사용해야 하는 경우 대규모 삭제 작업에 실행 가능한 옵션을 제공합니다.
위 내용은 SQL Server 2008은 bcp와 유사한 대량 삭제 기능을 제공합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!