>데이터 베이스 >MySQL 튜토리얼 >SQL Server 테이블에서 상위 행을 안전하게 삭제하는 방법은 무엇입니까?

SQL Server 테이블에서 상위 행을 안전하게 삭제하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-24 06:13:18961검색

How to Safely Delete Top Rows from a SQL Server Table?

SQL Server 테이블에서 상위 행 삭제

SQL Server에서는 DELETE 문을 통해 테이블의 상위 행을 삭제할 수 있습니다. . 그러나 실수로 모든 테이블 행을 삭제하는 것을 방지하려면 명령문이 올바르게 구성되었는지 확인하는 것이 중요합니다.

제공된 코드에 설명된 대로 다음 명령문을 사용하여 상위 1000개 행 삭제를 시도합니다.

delete from [mytab] 
select top 1000 
a1,a2,a3
from [mytab]

일반적으로 의도한 상위 1000개 행 대신 모든 테이블 행이 삭제됩니다. 이는 명령문이 DELETE와 SELECT라는 두 가지 작업으로 구성되어 있기 때문입니다.

맨 위 행만 올바르게 삭제하려면 TOP 절에 순서 기준을 지정하는 것이 중요합니다. 이것이 없으면 SQL Server는 무작위로 행을 삭제하여 전체 테이블에 영향을 미칠 수 있습니다.

효율적인 방법 중 하나는 CTE(공통 테이블 표현식) 또는 유사한 테이블 표현식을 사용하는 것입니다. 다음은 수정된 예입니다.

;WITH CTE AS
(
SELECT TOP 1000 *
FROM [mytab]
ORDER BY a1
)
DELETE FROM CTE

이 경우 CTE는 지정된 열 'a1'을 기준으로 [mytab] 테이블의 상위 1000개 행을 반환합니다. 그런 다음 DELETE 문은 CTE 테이블 식을 대상으로 하여 의도한 행만 제거되도록 합니다. 이 접근 방식은 불필요한 처리를 최소화하고 추가 행이 실수로 삭제되는 것을 방지합니다.

위 내용은 SQL Server 테이블에서 상위 행을 안전하게 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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