>데이터 베이스 >MySQL 튜토리얼 >SQL Server 2008에는 삽입용 bcp와 같은 대량 삭제 명령이 있습니까?

SQL Server 2008에는 삽입용 bcp와 같은 대량 삭제 명령이 있습니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-04 22:04:40431검색

Is There a Bulk Delete Command in SQL Server 2008 Like bcp for Inserts?

SQL Server 2008의 대량 삭제: 삭제 작업을 위한 대량 복사 병렬

이 질문에서 대량 삭제 작업의 필요성 SQL Server 2008에서는 데이터에 대한 BCP(대량 복사 작업)와 비교할 수 있는 직접적인 솔루션이 없기 때문에 발생합니다. 삭제. 이러한 격차를 해소하기 위해 사용자는 WHERE 절의 정확성으로 대량 삭제가 가능한 대안을 찾고 있습니다.

공식 응답에서는 SQL Server에 전문적인 대량 삭제 명령이 없음을 확인했습니다. 그러나 원하는 결과를 얻을 수 있는 실용적인 대안을 제공합니다.

일괄 삭제

한 가지 접근 방식은 다음 구문을 사용하여 일괄 삭제를 실행하는 것입니다.

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

이를 통해 배치 크기(xxx)를 지정하고 더 이상 행이 없을 때까지 행을 반복적으로 삭제할 수 있습니다. 유지하세요.

대부분의 행 삭제를 위한 대체 삭제 전략

많은 비율의 행을 제거해야 하는 시나리오에서 보다 효율적인 접근 방식은 다음 단계를 사용하는 것입니다. :

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

여기에는 삭제되지 않을 행이 포함된 임시 보유 테이블을 생성한 다음 기본 테이블을 자르는 작업이 포함됩니다. 테이블. 마지막으로 보유 테이블의 데이터가 기본 테이블에 다시 삽입됩니다.

위 내용은 SQL Server 2008에는 삽입용 bcp와 같은 대량 삭제 명령이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.