SQL Server 2008의 대량 삭제: 탐구
대량 삭제의 개념은 SQL Server 2008에서 대량의 행을 삭제하려고 할 때 발생합니다. 테이블을 효율적으로 SQL Server의 TRUNCATE 명령은 테이블에서 모든 행을 제거하는 빠른 방법을 제공하지만 WHERE 절을 사용하여 데이터를 선택적으로 삭제할 수는 없습니다.
대량 복사를 삭제에 적용할 수 있습니까?
안타깝게도 SQL Server 2008에는 삭제를 위한 대량 복사(bcp)와 직접적으로 동등한 기능이 없습니다. 그러나 대체 접근 방식을 활용하여 대량 삭제를 수행할 수 있습니다.
일괄 삭제
일괄 삭제에는 삭제 작업을 더 작은 배치로 분할하는 작업이 포함됩니다. 이는 다음 구문을 사용하여 달성할 수 있습니다.
SELECT 'Starting' --sets @@ROWCOUNT WHILE @@ROWCOUNT <> 0 DELETE TOP (xxx) MyTable WHERE ...
'Starting' 문은 각 일괄 처리에서 삭제할 행 수를 결정하는 @@ROWCOUNT 변수를 설정합니다. WHILE 루프는 모든 행이 삭제될 때까지 계속됩니다.
홀딩 테이블 사용
상당한 비율의 행을 제거해야 하는 경우 홀딩 테이블을 사용할 수 있습니다. 다음 단계에서는 이 접근 방식을 간략하게 설명합니다.
결론
SQL Server 2008에서는 삭제를 위한 대량 복사를 직접 대체할 수는 없지만 위에서 설명한 기술은 실행 가능한 대안을 제공합니다. 일괄 삭제는 적은 수의 행을 선택적으로 삭제하는 데 적합하고, 보유 테이블 접근 방식은 대규모 삭제에 적합합니다.
위 내용은 SQL Server 2008에서 대량 삭제를 효율적으로 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!