2009. 12. 28. 15:37

SQL 2008-변경 내용 추적


SQL Sever 2008 이후

MSDN에서 발췌한 내역입니다.

http://msdn.microsoft.com/ko-kr/library/bb933875.aspx

 

사용자 테이블에 대해 어떤 행이 변경되었는가?
행이 변경되었다는 사실만 필요하며, 행이 변경된 횟수 또는 중간 변경의 값은 필요하지 않습니다.
최신 데이터는 추적되는 테이블에서 직접 얻을 수 있습니다.
행이 변경되었는가?
행이 변경되었다는 사실, 그리고 이 변경에 대한 정보가 있어야 하며 동일한 트랜잭션에 변경이 수행된 시점에 이 사항이 기록되어야 합니다.


1. 변경 내용 추적 작동 방법

 

 - 변경 내용 추적이 테이블에 대해 구성되면 해당 테이블의 행에 영향을 미치는 DML 문이 수정된 각 행에 대한 변경 내용 추적을 기록합니다.

-  추적되는 테이블에서 변경 내용 정보와 함께 기록되는 유일한 정보는 기본 키 열의 값입니다. 이러한 값은 변경된 행을 식별합니다. 이러한 행에 대한 최신 데이터를 얻으려면 응용 프로그램에서는 기본 키 열 값을 사용하여 원본 테이블을 추적되는 테이블에 조인하면 됩니다.

- 각 행에 대해 수행된 변경에 대한 정보도 변경 내용 추적을 사용하여 얻을 수 있습니다.

 

ALTER DATABASE AdventureWorks
SET CHANGE_TRACKING = ON
(CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON)
;

ALTER TABLE Person.Contact
ENABLE CHANGE_TRACKING
WITH (TRACK_COLUMNS_UPDATED = ON)
;

-- 해지
ALTER TABLE Person.Contact
DISABLE CHANGE_TRACKING;

ALTER DATABASE AdventureWorks
SET CHANGE_TRACKING = OFF

 

작업 변경 내용 추적이 설정된 경우

DROP TABLE

삭제된 테이블에 대한 모든 변경 내용 추적 정보가 제거됩니다.

ALTER TABLE DROP CONSTRAINT

PRIMARY KEY 제약 조건을 삭제하려는 시도가 실패합니다. 변경 내용 추적을 해제해야 PRIMARY KEY 제약 조건을 삭제할 수 있습니다.

ALTER TABLE DROP COLUMN

삭제된 열이 기본 키의 일부일 경우 변경 내용 추적과 관계없이 해당 열을 삭제할 수 없습니다.

삭제된 열이 기본 키의 일부가 아닐 경우 해당 열을 삭제할 수 있습니다. 그러나 이 데이터를 동기화하는 응용 프로그램에 미치는 영향에 대해 먼저 이해해야 합니다. 테이블에 열 변경 내용 추적이 설정되어 있을 경우 삭제된 열이 여전히 변경 내용 추적 정보의 일부로 반환될 수도 있습니다. 삭제된 열은 응용 프로그램에서 처리해야 합니다.

ALTER TABLE ADD COLUMN

변경 내용 추적이 설정된 테이블에 새 열이 추가될 경우 이 열 추가 작업은 추적되지 않습니다. 새 열에 대해 수행된 업데이트 및 변경 내용만 추적됩니다.

ALTER TABLE ALTER COLUMN

기본 키가 아닌 열의 데이터 형식 변경 내용은 추적되지 않습니다.

ALTER TABLE SWITCH

테이블 중 하나 또는 둘 모두에 변경 내용 추적이 설정된 경우 파티션 전환에 실패합니다.

DROP INDEX 또는 ALTER INDEX DISABLE

기본 키를 강제 적용하는 인덱스는 삭제 또는 해제할 수 없습니다.

TRUNCATE TABLE

테이블 잘라내기는 변경 내용 추적이 설정된 테이블에서 수행할 수 있습니다. 그러나 이 작업으로 삭제된 행은 추적되지 않으며 유효한 최소 버전이 업데이트됩니다. 응용 프로그램이 버전을 검사할 때 해당 버전이 너무 오래되어 다시 초기화해야 한다고 나타납니다. 이는 해당 테이블의 변경 내용 추적이 해제된 다음 다시 설정되는 것과 동일합니다.

 


'Common Admin' 카테고리의 다른 글

Admin::SQL Server wait types  (0) 2010.03.28
Admin::DB 주의대상 일때.  (0) 2010.03.06
sql2008::CDC(Change Data Capture)  (1) 2009.12.28
SQL2008::데이터 변경 내용 추적  (0) 2009.12.28