2011-03-15 3 views

답변

3

(내 동료 스티브의이 대답은,하지만 그는 그래서 내가 그것을 게시합니다 때문에 계정이없는 ...)

, CDC는 변경되지 않습니다 ... 당신을 이전과 같은 열로 업데이트를 계속 받으십시오.

열을 삭제하면 CDC는 변경 내용을 계속 캡처하지만 삭제 된 열의 값은 항상 NULL입니다.

열을 변경하면 CDC는 변경 내용을 계속 캡처하지만 변경된 열의 값은 새 열 유형을 갖게됩니다.

에서
0

MSDN의 About Change Data Capture (SQL Server)

"추적되고있는 소스 테이블의 열 변화를 수용하기 위해 소스 테이블 을 변경 취급 다운 스트림 소비자를위한 어려운 문제입니다. 소스 테이블에 변경 데이터 캡처를 가능하게하는 것을 방지하지 않지만 이러한 DDL 변경으로 인해 변경된 데이터 캡처는 원본 소스 테이블의 열 구조가 변경되는 경우에도 API를 통해 반환되는 전달 된 결과 집합을 변경하지 않고 그대로 유지함으로써 소비자에 미치는 영향을 완화하는 데 도움이됩니다. 기본 쿼리 테이블에서 정의 된 쿼리가 액세스하는 기능 고정 된 열 구조 변경을 수용하려면 가능하면, 변경 테이블 채우기를 담당하는 캡처 프로세스는 소스 테이블이 변경 데이터 캡처에 대해 사용 가능할 때 캡처를 위해 식별되지 않은 새 컬럼을 모두 무시합니다. 추적 된 열이 삭제되면 후속 변경 항목의 열에 Null 값이 제공됩니다. 그러나 기존 열의 데이터 형식이 변경되면 변경 내용이 변경 테이블에 전파되어 캡처 메커니즘이 추적 열에 데이터 손실을 가져 오지 않도록합니다. 또한 캡처 프로세스는 추적 된 테이블의 열 구조에 대한 감지 된 변경 사항을 cdc.ddl_history 테이블에 게시합니다. 다운 스트림 응용 프로그램에서 조정해야 할 수도있는 경고를 받고자하는 소비자는 저장 프로 시저 sys.sp_cdc_get_ddl_history를 사용합니다. 일반적으로 DDL 변경 사항이 관련 소스 테이블에 적용될 때 현재 캡처 인스턴스는 계속 모양을 유지합니다. 그러나 새 열 구조를 반영하는 테이블의 두 번째 캡처 인스턴스를 만들 수 있습니다. 이를 통해 캡처 프로세스는 동일한 원본 테이블을 두 개의 다른 열 구조를 갖는 두 개의 별개의 변경 테이블로 변경합니다. 따라서 하나의 변경 테이블이 현재 운영 프로그램을 계속 공급할 수 있지만 두 번째 테이블은 새 열 데이터를 통합하려고하는 개발 환경을 유도 할 수 있습니다. 캡처 메커니즘이 두 변경 테이블을 일렬로 채우도록 허용하면 변경 데이터의 손실없이 한 테이블에서 다른 테이블로의 전환을 수행 할 수 있습니다. 이는 두 가지 변경 데이터 캡처 타임 라인이 겹칠 때마다 발생할 수 있습니다. 전환이 수행되면 사용되지 않는 캡처 인스턴스를 제거 할 수 있습니다. 참고 참고 단일 원본 테이블과 동시에 연결할 수있는 최대 캡처 인스턴스 수는 2 개입니다. "

관련 문제