2011-08-08 2 views
1

데이터베이스 테이블 (SQL SERVER 2005)의 N 중복 레코드에서 (N-1) 레코드를 업데이트하는 방법데이터베이스 테이블의 N 중복 레코드 (SQL SERVER 2005)에서 (N-1) 레코드를 업데이트하는 방법

배경 : 다른 두 테이블의 레코드를 비교하고 삽입 한 후 임시 테이블을 생성 중입니다.

그래서 임시 테이블은 일부 중복 필드가 일부 레코드가 (말 : 주문 ID, 트랜잭션 아이디 등) -하지만 별개을

나는 그런 소위 중복 레코드를 가져 가지고 있지만하지 않는 N 개의 레코드 중 N-1 레코드를 업데이트하는 방법에 대한 아이디어.

도움이 될 것입니다 (특히 샘플 코드). 미리 감사드립니다.

답변

1
WITH duplicates AS (
    SELECT 
    ROW_NUMBER() OVER (PARTITION BY x,y,z ORDER BY a,b,c) AS duplicate_id, 
    * 
    FROM 
    myData 
) 

UPDATE 
    duplicates 
SET 
    foo = bar 
WHERE 
    duplicate_id > 1 

x,y,z은 중복을 식별하는 데 필요한 필드입니다. 이것은 중복 정의에 따라 잠재적으로 모든 필드입니다.

+0

와우 작동합니다. 감사합니다 Dems - 이것은 굉장합니다. – Saliaziz

관련 문제