다음을 통해 공유


Database.Merge 메서드

Database 개체의 Merge 메서드는 참조 데이터베이스를 기본 데이터베이스와 병합합니다.

구문

Database.Merge(
  reference,
  errorTable
)

매개 변수

reference

데이터베이스에 병합하는 데 필요한 Database 개체입니다.

errorTable

병합 충돌이 포함된 테이블의 이름, 테이블 내의 충돌하는 행 수, 병합 충돌이 있는 테이블에 대한 참조를 포함하는 테이블의 선택적 이름입니다.

반환 값

이 메서드는 값을 반환하지 않습니다.

설명

MsiDatabaseMerge 함수와 Database 개체의 Merge 메서드는 설치 패키지에 포함된 모듈을 병합하는 데 사용할 수 없습니다. 병합 모듈을 Windows Installer 패키지에 병합하는 데 사용하면 안 됩니다. 설치 패키지에 병합 모듈을 포함하려면 설치 패키지 작성자가 병합 모듈 적용 항목에 설명된 지침을 따라야 합니다.

Merge 메서드는 포함된 캐비닛 파일이나 포함된 변환을 참조 데이터베이스에서 대상 데이터베이스로 복사하지 않습니다. Binary 테이블 또는 Icon 테이블에 나열되어 있는 포함된 데이터 스트림은 참조 데이터베이스에서 대상 데이터베이스로 복사됩니다. 참조 데이터베이스에 포함된 스토리지는 대상 데이터베이스에 복사되지 않습니다.

테이블이 제공되지 않으면 일반 오류 메시지에 병합 충돌이 포함된 테이블 수가 표시됩니다. 모든 테이블은 전달될 수 있지만 열이 null을 허용하지 않으면 Error 테이블을 업데이트하는 작업이 실패하기 때문에 다른 모든 열은 null을 허용해야 합니다. Merge 메서드는 병합 충돌이 발견될 때 사용하는 열을 자동으로 만들기 때문에 새로 만든 테이블도 전달할 수 있습니다. 병합 충돌을 표시하는 데 두 개의 열이 사용됩니다. 첫 번째 열은 테이블 이름과 기본 키 열입니다. 두 번째 열은 병합 오류가 있는 해당 테이블의 행 수입니다.

두 데이터베이스에서 이름이 같은 테이블이 기본 키의 수, 열 형식, 열 수 또는 열 이름에 일치하지 않으면 Merge 메서드가 실패하고 발생한 내용을 나타내는 오류 메시지가 게시됩니다.

Error 테이블이 유지되려면 오류 처리기가 Error 테이블이 속한 데이터베이스를 커밋해야 합니다. 그러나 이 커밋은 병합 충돌이 발생한 테이블에 대한 참조를 가져오기 위해 세 번째 열을 사용한 후에 수행해야 합니다.

메서드가 실패하면 LastErrorRecord 메서드를 사용하여 확장된 오류 정보를 가져올 수 있습니다.

요구 사항

요구 사항
버전
Windows Server 2012, Windows 8, Windows Server 2008 R2 또는 Windows 7의 Windows Installer 5.0. Windows Server 2008 또는 Windows Vista의 Windows Installer 4.0 또는 Windows Installer 4.5. Windows Server 2003 또는 Windows XP의 Windows Installer
DLL
Msi.dll
IID
IID_IDatabase는 000C109D-0000-0000-C000-000000000046으로 정의됩니다.