Sync Framework에서 지원하는 데이터베이스 개체
이 항목에서는 데이터베이스 동기화에 대한 Sync Framework 지원을 설명합니다.
피어 투 피어 동기화
DbSyncProvider는 테이블 동기화를 지원하며, Customer 테이블 앞에 Sales 스키마 또는 소유자가 오는 Sales.Customer 등의 스키마 정규화 개체를 지원합니다.
피어 투 피어 동기화에서는 피어 데이터베이스의 자동 초기화를 제공하지 않습니다. 따라서 동기화 중에 테이블이 피어 데이터베이스에 복사되지 않습니다. 피어 초기화에 대한 자세한 내용은 방법: 공동 작업 동기화 구성 및 실행(SQL Server 이외)에서 "서버 데이터베이스 초기화"를 참조하십시오.
클라이언트 및 서버 동기화
DbServerSyncProvider는 모든 유형의 동기화에 대해 서버 데이터베이스의 테이블을 지원합니다. 그리고 스냅숏 및 다운로드 전용 동기화에 대해 뷰가 지원됩니다. 클라이언트의 단일 테이블은 서버의 여러 테이블에 있는 데이터를 포함할 수 있습니다. 자세한 내용은 방법: 클라이언트에 데이터 뷰 만들기를 참조하십시오.
데이터가 서버에서 저장되거나 표현되는 방식에 관계없이 SQL Server Compact는 클라이언트에서 데이터를 테이블에 저장합니다.
SQL Server Compact는 Customer 테이블 앞에 Sales 스키마 또는 소유자가 오는 Sales.Customer 등의 스키마 정규화 개체를 지원하지 않습니다. AdventureWorks 샘플 데이터베이스의 Sales.Customer 테이블을 동기화하려면 TableName에 Customer 값을 지정합니다.
기본적으로 FOREIGN KEY 제약 조건, UNIQUE 제약 조건, DEFAULT 제약 조건 및 SQL Server ROWGUIDCOL 속성은 클라이언트 데이터베이스에 복사되지 않습니다. 이러한 개체가 클라이언트 데이터베이스에 필요한 경우에는 SQL을 사용하여 추가하거나 SyncSchema 개체에 추가합니다. 자세한 내용은 방법: 클라이언트 데이터베이스 초기화 및 테이블 스키마 사용을 참조하십시오.
Sync Framework는 서버에서 대/소문자를 구분하는 데이터 정렬을 지원하지만 다음과 같은 제한이 있습니다.
고유 인덱스나 제약 조건이 있는 기본 키 열에 VALUE1 및 value1과 같이 대/소문자만 다른 값이 포함될 수 없습니다.
TABLE1 및 table1과 같이 대/소문자만 다른 데이터베이스 개체의 동기화는 지원되지 않습니다.
서버의 데이터베이스는 여러 동기화 세션에 참가할 수 있습니다. 그러나 데이터베이스의 개체는 특정 클라이언트에 대해 한 번에 하나의 동기화 세션에만 참가할 수 있습니다. 테이블을 동기화 중일 때 해당 테이블에 대해 Synchronize 메서드를 다시 호출하면 Sync Framework에서 예외를 throw합니다. 클라이언트 데이터베이스는 한 번의 하나의 동기화 세션만 지원합니다.