Remote_table
및 My_table
의 두 테이블이 있다고 가정합니다.데이터 테이블에서 새 레코드 복사 및 이전 레코드의 변경 확인
PROJECT JOB_TYPE MONTH YEAR** HOURS IS_DELETED
134393 70 1 2013 30 0
134393 70 2 2013 50 0
134393 70 3 2013 80 0
134393 70 10 2012 10 0
134393 70 11 2012 0 0
134393 70 12 2012 15 0
My_table
가 remote_table
의 사본이다
Remote_table
6 열을 갖는다.
remote_table
만 새로운 기록을 복사하려고 :
SELECT *
FROM [remote_DB].[LudanProjectManager].[dbo].Remote_table
EXCEPT
SELECT *
FROM My_table
그것은 확인을 작동하지만 변화가 시간 컬럼에 remote_table
에서 작성되었을 때 중복 기본 키 예외를 얻을.
누구나 remote_table
에서 새 레코드 만 복사하고 이전 레코드가 변경된 경우 해당 레코드를 식별하고 my_table
을 업데이트 할 수 있습니까?
당신은 Upsert을 시도하거나 문을 병합 할 수 있습니다. –
아마도 'EXCEPT'대신 'exist in'을 사용해야합니다. EXCEPT 명령은 모든 열을 비교하므로 시간 열에 업데이트가있을 때 중복 키를 가져 오는 것입니다. – Romo