다중 사용자 액세스 및 RDA

Microsoft SQL Server 2005 Compact Edition(SQL Server Compact Edition)의 다중 사용자 액세스는 RDA(Remote Data Access)를 사용하는 경우를 포함하여 언제나 사용이 가능합니다. 다른 사용자가 동일한 SQL Server Compact Edition 데이터베이스에 액세스하는 동안 끌어오기 또는 밀어넣기 작업을 진행할 수도 있습니다.

끌어오기 작업을 수행하려면 작업 중에 특정 로컬 테이블이 표시되지 않아야 하며 서버에서 데이터를 끌어오는 동안 테이블이 작성되므로 끌어오는 테이블은 끌어오기 작업이 완료되기 전까지 액세스할 수 없습니다. 서버에 데이터를 밀어넣는 경우 밀어넣기가 시작된 후에 데이터가 변경되면 해당 변경 내용은 다음 밀어넣기 작업 시 서버로 전송됩니다. 특정 밀어넣기 작업 후 서버 데이터를 반드시 새로 고쳐야 하는 경우 밀어넣기 및 끌어오기 작업이 모두 완료될 때까지 테이블에 대한 추가 변경이 허용되지 않습니다. 따라서 테이블이 삭제되어도 변경 내용은 손실되지 않습니다.

SQL Server Compact Edition 데이터베이스에 대한 다중 연결 액세스를 허용하면 개발 모델이 단순해집니다. 또한 SQL Server Compact Edition 데이터베이스 엔진에서는 다중 응용 프로그램의 요청을 처리하거나 단일 응용 프로그램의 다중 연결 요청을 처리할 수 있으므로 개발자가 데이터베이스 액세스를 예약할 필요가 없습니다. 다중 연결이 필요한 경우 SQL Server Compact Edition 데이터베이스 엔진에서는 필요에 따라 특정 작업에 대한 데이터를 잠금니다.

동기화 시 기본 키 변경

RDA 추적 테이블의 경우 기본 키를 기준으로 업데이트, 삽입 및 삭제가 추적됩니다. 기본 키 열에 대한 다중 사용자 액세스가 가능하기 때문에 동기화 작업이 진행되는 동안에는 키본 키 열 값을 변경하지 말아야 합니다.

경고 기본 키 열 값이 변경되는 경우는 드물기는 하지만 기본 키가 변경된 테이블을 동기화하는 도중 기본 키 열 값이 변경되면 오류가 발생하거나 데이터가 손실될 수 있습니다.

테이블 A에서 기본 키 값이 1에서 2로 변경되었습니다. 값 1은 RDA에서 사용하는 추적 열에 저장되므로 밀어넣기가 발생하는 경우 SQL Server Compact Edition 에서 데이터를 새 값으로 업데이트할 때 검색 조건으로 사용할 값을 알고 있습니다.

응용 프로그램에서는 밀어넣기 작업을 시작하고 새로운 값인 2를 업로드 메시지를 통해 검색 값 1과 함께 SQL Server 데이터베이스로 보냅니다. 그러나 동기화 도중 새 데이터 값이 변경되면 밀어넣기가 완료되지 않았기 때문에 추적 열이 검색 값을 1에서 2로 변경하지 않습니다. 이 밀어넣기가 성공하면 해당 행의 다음 밀어넣기는 항상 실패하게 됩니다. 서버에서 기본 키 값이 1에서 2로 변경되었기 때문에 검색 기준 1은 더 이상 유효하지 않습니다.

다중 사용자 액세스에 대한 자세한 내용은 다중 사용자 액세스를 참조하십시오. 잠금에 대한 자세한 내용은 잠금(SQL Server Compact Edition)을 참조하십시오.

참고 항목

도움말 및 정보

SQL Server Compact Edition 지원 정보 보기