다음을 통해 공유


여러 사용자가 변경한 내용 조정

일부 환경에서는 동일한 개체를 여러 사용자가 동시에 변경할 수 있습니다. 예를 들어 사용자는 테이블 또는 데이터베이스 다이어그램 디자이너에서 개체의 구조를 업데이트하거나 쿼리 및 뷰 디자이너의 결과 창에서 값을 변경할 수 있습니다. 이 경우 충돌이 발생할 수 있으므로 적절한 해결책이 필요합니다.

테이블 또는 데이터베이스 다이어그램 디자이너의 충돌

예를 들어 테이블 디자이너에서 현재 사용자가 작업 중인 것과 동일한 테이블이나 관련 테이블을 다른 사용자가 삭제하거나 이름을 변경할 수 있습니다. 테이블을 저장하려고 하면 데이터베이스 변경 감지 대화 상자(데이터베이스 디자이너)가 표시되어 사용자가 테이블을 연 이후 데이터베이스가 업데이트되었음을 알려 줍니다.

또한 이 대화 상자에는 테이블을 저장하는 경우 영향을 받는 데이터베이스 개체의 목록이 표시됩니다. 이 시점에서 사용자는 다음 작업 중 하나를 수행할 수 있습니다.

  • 를 선택하여 테이블을 저장하고 데이터베이스를 목록의 모든 변경 내용으로 업데이트합니다.

    이 작업은 같은 데이터베이스 개체를 공유하는 테이블에 영향을 줄 수 있습니다. 예를 들어, titleauthors 테이블의 au_id 열을 편집하는 동안 다른 사용자가 au_id 열에서 titleauthors 테이블과 연결된 authors 테이블에 대한 작업을 진행하는 경우 테이블을 저장하면 다른 사용자의 테이블에 영향을 줍니다. 마찬가지로 다른 사용자가 sales 테이블의 qty 열에 CHECK 제약 조건을 정의할 수 있으며 이 경우 qty 열을 삭제하고 sales 테이블을 저장하면 다른 사용자의 CHECK 제약 조건도 영향을 받습니다.

  • 아니요를 선택하여 저장 작업을 취소합니다.

    그러면 테이블을 저장하지 않고 닫을 수 있습니다. 테이블을 다시 열면 데이터베이스의 최신 데이터가 적용됩니다.

  • 텍스트 파일 저장을 선택하여 변경 내용 목록을 저장합니다.

    데이터베이스 변경 감지 대화 상자에 나타나는 데이터베이스 변경 내용 목록을 텍스트 파일에 저장하여 다른 사용자의 변경 원인을 조사할 수 있습니다. 예를 들어, 사용자가 삭제하려고 표시한 테이블을 다른 사용자가 편집한 경우 데이터베이스를 업데이트하기 전에 테이블을 삭제해야할지 여부를 조사할 수 있습니다.

쿼리 및 뷰 디자이너의 충돌

쿼리를 실행하거나 뷰의 결과를 반환하면 결과 창에 데이터가 나타납니다. 여러 사용자가 동일한 데이터 집합에 대해 동시에 작업을 수행하는 경우 충돌이 발생할 수 있습니다.

예를 들어, 현재 사용자와 동료 사용자가 각각 titleauthors 테이블의 모든 데이터를 표시하도록 쿼리를 실행하는 경우를 생각해 볼 수 있습니다. 반환된 첫 번째 레코드의 첫 번째 이름을 동료 사용자가 Barb에서 Barbara로 변경한 경우, 이 시점에서 데이터베이스의 해당 필드에는 Barbara가 표시되지만 현재 사용자의 결과 집합에는 여전히 Barb가 표시됩니다. 뒤늦게 현재 사용자가 Barbara를 입력하고 행 바깥쪽을 클릭하면 충돌 문제를 어떻게 해결할지 묻는 메시지가 나타납니다.

  • 를 클릭하여 변경 내용으로 데이터베이스를 업데이트합니다.

    이 옵션을 선택하면 다른 사용자가 변경한 내용이 무시됩니다.

  • 아니요를 클릭하여 데이터베이스와 일치하도록 현재 사용자의 결과 집합을 업데이트합니다.

    이 옵션을 선택하면 현재 사용자의 변경 내용이 무시되고 다른 사용자가 변경한 내용이 적용됩니다.

  • 취소를 클릭하여 충돌을 해결하지 않은 상태로 계속 편집합니다.

    이 경우 변경 내용을 데이터베이스에 커밋할 수 없습니다.

참고 항목

작업

방법: 변경 스크립트 생성

참조

데이터베이스 변경 감지 대화 상자(데이터베이스 디자이너)

기타 리소스

스크립트 작업