2017-02-22 7 views
0

변경 내용 추적이 설정된 테이블이 있다고 가정하고 제공된 기본 키의 테이블 열을 업데이트한다고 가정합니다. 내가 업데이트하는 값은 이전에 이미 있던 값과 같습니다.값이 변경되지 않은 경우 CHANGE_TRACKING_IS_COLUMN_IN_MASK

docs에서 MSDN은 열이 컬렉션 change_columns에 있으면 true를 반환한다고 말합니다.

CHANGE_TRACKING_IS_COLUMN_IN_MASK는 다음 값을 반환합니다.

0 : 지정된 열이 change_columns 목록에 없습니다.

1 : 지정된 열이 change_columns 목록에 있습니다.

나열 last_sync_version합니다 ( 기준) 이후에 변경된 컬럼 : further 찾고

change_columns리스트로서 정의되는 CHANGETABLE.SYS_CHANGE_COLUMNS 속성에 대한 래퍼이다.

어느 것이 모호합니다. 이 문맥에서 "변경된"의미는 무엇입니까? 값이 같으면 변경된 것입니까?

누구나 답변을 알고 계십니까?

+0

추적 메커니즘을 경량으로 유지하기 위해 전후 값을 비교하지 않고 오히려 columns_updated 함수와 유사한 메커니즘 (정확하게는 그렇지 않은 경우)을 사용한다고 생각합니다. –

+0

@BenThul - 그렇습니다. 그것은 나의 의심이었을 것입니다. 사실, 나는 그것을 시도했고 우리는 모두 정확했다. 본능으로 간다! –

답변

0

방금 ​​시도했는데 실제로 변경 델타가 무엇인지에 관계없이 열 값이 변경되면 CHANGE_TRACKING_IS_COLUMN_IN_MASK이 (가) true를 반환한다고보고 할 수 있습니다.

+1

변경되지 않았더라도 변경 내용 추적은 변경 사항이 발생했음을보고하고 변경 수나 중간 값의 수는보고하지 않습니다. 따라서 모든 'A'값이 '1'로 시작하면 'UPDATE Tbl SET A = 2'다음에 'UPDATE Tbl SET A = 1'이라는 업데이트가 귀하의 비 업데이트와 구별되지 않으므로 어쨌든 그 상황을 처리해야합니다. –