참고
다음 정보는 오프라인 시나리오만 지원하는 기존 응용 프로그램에 대한 참조용으로 포함되어 있습니다. 새 응용 프로그램을 개발하는 경우에는 데이터베이스 동기화에 대한 아키텍처 및 클래스를 참조하십시오.
이 항목에서는 클라이언트 데이터베이스에서 만드는 테이블 스키마를 사용하는 다양한 방법에 대해 설명합니다.
클라이언트 및 서버 동기화
Sync Framework는 클라이언트에 대한 초기 동기화 세션 중에 클라이언트 데이터베이스에 테이블을 만듭니다. 자세한 내용은 방법: 클라이언트 데이터베이스 초기화 및 테이블 스키마 사용을 참조하십시오. 테이블이 만들어진 후 일부 스키마 변경이 허용됩니다.
Sync Framework는 스키마 변경 내용을 서버에서 클라이언트로 자동 전파하지 않습니다. 서버에서 스키마 변경 내용을 처리하는 방법에 대한 자세한 내용은 응용 프로그램 배포 및 버전 관리를 참조하십시오. 클라이언트 데이터베이스에서는 다음과 같은 스키마 변경 내용이 지원됩니다.
테이블 삭제. 다음 동기화 동안 수행되는 동작은 CreationOption에 대해 지정하는 값에 따라 달라집니다. 클라이언트에 테이블이 포함되지 않도록 하려면 SyncTableCollection에서 테이블을 제거합니다. 변경 추적 기능을 사용하도록 설정한 테이블을 삭제하면 해당 테이블에 대한 삭제 작업을 추적하는 시스템 테이블도 삭제됩니다. 그러므로 마지막 동기화 이후에 수행한 삭제 작업이 서버로 업로드되지 않습니다.
새 열을 추가합니다.
스냅숏 동기화에 포함되는 테이블의 열을 삭제합니다. 다른 유형의 동기화에 대해서는 이 변경이 지원되지 않습니다.
인덱스를 추가 및 삭제하고 이름을 바꿉니다.
기본 키 및 기타 제약 조건을 추가 및 삭제하고 이름을 바꿉니다.
기본값을 수정합니다.
다른 모든 변경 내용은 지원되지 않으며 동기화 오류를 발생시킬 수 있습니다.
일부 응용 프로그램의 경우 클라이언트와 서버에서 스키마가 다릅니다. 아래 예제에서는 테이블의 동작과 Sync Framework에서 클라이언트의 해당 테이블을 업데이트하는 데 사용하는 ADO.NET 데이터 집합의 동작에 대해 간략하게 설명합니다.
데이터 집합에 Column1 및 Column2가 있고 테이블에 Column1, Column2, 및 Column3이 있으면 Column1 및 Column2의 값이 적용되고 Column3은 기본값으로 설정되거나 기본값이 없는 경우에는 NULL로 설정됩니다.
데이터 집합에 Column1, Column2 및 Column3이 있고 테이블에 Column1 및 Column2가 있으면 Column1 및 Column2의 값이 적용되고 Column3은 무시됩니다.
데이터 집합에 Column1, Column2 및 Column3이 있고 테이블에 Column1, Column2 및 Column4가 있으면 Column1 및 Column2의 값이 적용되고 Column3은 기본값으로 설정되거나 기본값이 없는 경우에는 NULL로 설정되고 Column4는 무시됩니다.