SQL 2008-변경 내용 추적
SQL Sever 2008 이후
MSDN에서 발췌한 내역입니다.
http://msdn.microsoft.com/ko-kr/library/bb933875.aspx
사용자 테이블에 대해 어떤 행이 변경되었는가?
행이 변경되었다는 사실만 필요하며, 행이 변경된 횟수 또는 중간 변경의 값은 필요하지 않습니다.
최신 데이터는 추적되는 테이블에서 직접 얻을 수 있습니다.
행이 변경되었는가?
행이 변경되었다는 사실, 그리고 이 변경에 대한 정보가 있어야 하며 동일한 트랜잭션에 변경이 수행된 시점에 이 사항이 기록되어야 합니다.
1. 변경 내용 추적 작동 방법
- 변경 내용 추적이 테이블에 대해 구성되면 해당 테이블의 행에 영향을 미치는 DML 문이 수정된 각 행에 대한 변경 내용 추적을 기록합니다.
- 추적되는 테이블에서 변경 내용 정보와 함께 기록되는 유일한 정보는 기본 키 열의 값입니다. 이러한 값은 변경된 행을 식별합니다. 이러한 행에 대한 최신 데이터를 얻으려면 응용 프로그램에서는 기본 키 열 값을 사용하여 원본 테이블을 추적되는 테이블에 조인하면 됩니다.
- 각 행에 대해 수행된 변경에 대한 정보도 변경 내용 추적을 사용하여 얻을 수 있습니다.
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 |