Microsoft로 로그인
로그인하거나 계정을 만듭니다.
안녕하세요.
다른 계정을 선택합니다.
계정이 여러 개 있음
로그인할 계정을 선택합니다.

증상

클러스터형 또는 고유 인덱스가 있는 테이블에서 업데이트를 실행하고 기본이 아닌 고유 열에서 업데이트가 발생하는 경우 변경 내용 추적 레코드가 업데이트 문과 일치하지 않습니다.

예를 들어 "column1"이라는 열이 클러스터형 또는 고유 인덱스로 포함되어 있다고 가정합니다. 열 값이 더 큰 값에서 더 작은 값으로 변경되면(예: 값을 20에서 16으로 변경) 변경 내용 추적 쪽 테이블은 삭제 작업 전에 삽입 작업을 받습니다. 예를 들어 행 삭제 작업 전에 트랜잭션 로그 삽입 행 레코드 작업이 수신되거나 "D" 앞에 "I"가 삽입됩니다.

Sys_change_version

sys_change_create_version

sys_change_operation

sys_change_column

sys_change_context

PK_column

1116

19

NULL

NULL

5639485628

1116

20

D

NULL

NULL

5639485628


열 값이 더 작은 값에서 더 큰 값으로 변경되면(예: 값을 16에서 20으로 변경) "D"가 "I" 앞에 삽입됩니다.

Sys_change_version

sys_change_create_version

sys_change_operation

sys_change_column

sys_change_context

PK_column

1126

32

D

NULL

NULL

5639485628

1126

33

NULL

NULL

5639485628

원인

이 문제는 변경 내용 추적 쪽 테이블에서 삭제/삽입 쌍 간의 순서가 잘못되었기 때문에 발생합니다.

해결 방법

이 문제에 대한 수정 사항은 SQL Server 대한 다음 업데이트에 포함되어 있습니다.

         2017년 SQL Server 대한 누적 업데이트 8

         SQL Server 2016 서비스 팩 1의 누적 업데이트 9

SQL Server 2014 SP2용 누적 업데이트 12

SQL Server 빌드 정보

SQL Server 대한 각 새 빌드에는 이전 빌드에 있던 모든 핫픽스 및 보안 수정 사항이 포함되어 있습니다. SQL Server 최신 빌드를 설치하는 것이 좋습니다.

SQL Server 2017의 최신 누적 업데이트

SQL Server 2016의 최신 빌드

SQL Server 2014의 최신 누적 업데이트

상태

Microsoft는 "적용 대상" 절에 나열한 Microsoft 제품에서 이 문제를 확인했습니다.

추가 정보

변경 내용 추적 사용 테이블의 경우 고유한 것으로 정의된 기본이 아닌 열에서 업데이트가 발생하면 변경 내용 추적 쪽 테이블에 두 개의 항목이 삽입됩니다. 각 분할 작업에 대한 하나의 항목인 삽입 및 삭제입니다.

변경 내용을 열거하기 위해 CHANGETABLE 함수를 호출하면 이러한 항목이 기본 키 값별로 정렬된 다음 작업이 집계됩니다. 업데이트에서 더 낮은 값을 삽입하면 "I" 연산이 먼저 사이드 테이블에서 실행되고 그 다음에는 "D" 작업이 실행됩니다. 이렇게 하면 이 행에 대해 잘못된 작업이 반환됩니다. "I" 뒤에 오는 "D"가 "D"로 집계되기 때문입니다.

기본 키 값만 사이드 테이블에 유지 관리되므로 별도의 두 항목을 가질 필요는 없습니다. 기본 키 열이 업데이트되지 않는 한 이는 사실입니다.

이 문제는 기본이 아닌 고유 열에 대해 해결되었습니다. 이 경우 업데이트가 발생하면 "D" 및 "I"가 있는 두 항목 대신 "U"를 업데이트 작업으로 사용하여 하나의 행만 삽입됩니다.

참고 자료

Microsoft에서 소프트웨어 업데이트를 설명하는 데 사용하는 용어 에 대해 알아봅니다.

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.

이 정보가 유용한가요?

언어 품질에 얼마나 만족하시나요?
사용 경험에 어떠한 영향을 주었나요?
제출을 누르면 피드백이 Microsoft 제품과 서비스를 개선하는 데 사용됩니다. IT 관리자는 이 데이터를 수집할 수 있습니다. 개인정보처리방침

의견 주셔서 감사합니다!

×