본문 바로가기

MSSQL

System-versioned Table(Temporal Table), History Table 간단하게 이해하기

MS에서 제공하는 WideWorldImporters 샘플 데이터베이스를 SSMS에서 Restore작업하고나니 다음과 같이 보이는 테이블이 있었다.

System-Versioned Table과 History Table이 있어서 어떤 차이점이 있는지 살펴보았다.

 

1. [Cities] 테이블(System-Versioned Table)에는 Greenwood 도시의 행이 존재했던 시간을 기록하는 컬럼이 존재한다.

2. 만약 [Cities] 테이블에서 Greenwood의 특정 컬럼 데이터가 변경되는 경우,  [Cities_Archive] 테이블(History Table)에  변경 전 데이터가 기록된다.

3. 하단에 첨부한 샘플 데이터를 살펴 보면, LatesetRecordedPopulation(688 >> 715), LastEditedBy(1 >> 20) 컬럼 값이 2013년 7월 1일 16시에 바뀌었음을 알 수 있다. 


⚠참고⚠

✔ 해당 기능은 SQL Server 2016 부터 존재한다.

✔ System-Versioned Table은 Temporal Table이라고도 하는데, Temp Table과 혼동해서는 안된다.

✔ Temporal Table은 데이터 변경 사항을 추적하는 새로운 기능을 제공한다. 이를 통해서 SQL Server는 테이블의 데이터 기록을 자동으로 유지 관리할 수 있다.

✔ 이 기능은 데이터의 모든 변경 사항에 대한 전체 기록을 제공한다.