적용 대상: SQL Server 2016 (13.x) 및 이후 버전
: Azure SQL 데이터베이스,
Azure SQL Managed Instance
,Microsoft Fabric의 SQL 데이터베이스
시간 테이블에서는 여러 가지 일관성 검사를 수행합니다. 이 검사는 스키마가 시간적 요구사항을 준수하고 데이터가 일관성 있고 일관성 있게 유지되도록 보장합니다.
DBCC CHECKCONSTRAINTS 이 명세서는 또한 시간적 검증을 제공합니다.
시스템 일관성 확인
SYSTEM_VERSIONING을 ON으로 설정하기 전에 기록 테이블 및 현재 테이블에서 일련의 검사가 수행됩니다. 이 검사들은 스키마 검사와 데이터 검사(히스토리 테이블이 비어 있지 않은 경우)로 분류됩니다. 시스템은 또한 런타임 일관성 검사를 수행합니다.
스키마 검사
테이블을 생성하거나 변경하여 시간 테이블로 만들 때, 시스템은 다음 요구사항이 충족되는지 확인합니다:
현재 표와 역사표 모두에서 이름과 열의 수가 동일합니다.
데이터 타입은 현재 테이블과 히스토리 테이블 간의 각 열마다 일치합니다.
기간 열이
NOT NULL로 설정됩니다.현재 테이블에는 기본 키 제약 조건이 있고, 히스토리 테이블에는 기본 키 제약 조건이 없습니다.
기록 테이블에는
IDENTITY열이 정의되지 않습니다.기록 테이블에는 트리거가 정의되지 않습니다.
기록 테이블에는 외래 키가 정의되지 않습니다.
기록 테이블에는 테이블 또는 열 제약 조건이 정의되지 않습니다. 그러나 기록 테이블의 기본 열 값은 허용되지 않습니다.
기록 테이블은 읽기 전용 파일 그룹에 배치되지 않습니다.
기록 테이블은 변경 추적 또는 변경 데이터 캡처를 위해 구성되지 않습니다.
데이터 일관성 확인
SYSTEM_VERSIONING을 ON으로 설정하고 DML(데이터 조작 언어) 작업의 일부로 설정하기 전에 시스템은 ValidTo >= ValidFrom 확인을 수행합니다.
기존 히스토리 테이블에 링크를 생성할 때, 데이터 일관성 검사를 선택할 수 있습니다. 이 데이터 일관성 검사는 기존 기록이 겹치지 않고 모든 기록이 시간적 요구사항을 충족하는지 보장합니다. 데이터 일관성 검사는 기본적으로 실행됩니다. 현재 테이블과 히스토리 테이블 간의 데이터가 동기화되지 않을 수 있을 때 데이터 일관성 검사를 수행하세요. 예를 들어, 이미 히스토리 데이터를 포함하는 기존 히스토리 테이블을 통합할 때 이를 수행합니다.
Warning
시스템 시계를 수동으로 변경하면 겹침 상태를 방지하는 런타임 데이터 일관성 검사(즉, 레코드의 종료 시간이 시작 시간보다 이르지 않아야 한다는 검사)가 실패하므로 시스템이 예기치 않게 실패합니다.
DBCC CHECKCONSTRAINTS 사용
DBCC CHECKCONSTRAINTS 명령에는 temporal 데이터 일관성 확인이 포함됩니다. 자세한 내용은 DBCC CHECKCONSTRAINTS를 참조하세요.