MSmerge_conflicts_info(Transact-SQL)
MSmerge_conflicts_info 테이블은 구독을 병합 게시와 동기화할 때 발생하는 충돌을 추적합니다. 충돌에서 패한 행 데이터는 충돌이 발생한 아티클에 해당하는 MSmerge_conflict_publication_article 테이블에 저장됩니다. 이 테이블은 게시 데이터베이스의 게시자와 구독 데이터베이스의 구독자에 저장됩니다.
열 이름 |
데이터 형식 |
설명 |
---|---|---|
tablenick |
int |
게시된 테이블의 애칭입니다. |
rowguid |
uniqueidentifier |
충돌 행의 식별자입니다. |
origin_datasource |
nvarchar(255) |
충돌을 일으키는 변경이 시작된 데이터베이스의 이름입니다. |
conflict_type |
int |
발생한 충돌의 유형이며 다음 중 하나일 수 있습니다. 1 = 업데이트 충돌: 충돌이 행 수준에서 검색됩니다. 2 = 열 업데이트 충돌: 충돌이 열 수준에서 검색됩니다. 3 = 업데이트/삭제 충돌 시 삭제 적용: 삭제가 충돌에서 적용됩니다. 4 = 업데이트/삭제 충돌 시 업데이트 적용: 충돌에서 적용하지 못한 삭제된 rowguid가 이 테이블에 기록됩니다. 5 = 업로드 삽입 실패: 구독자에서의 삽입을 게시자에 적용할 수 없습니다. 6 = 다운로드 삽입 실패: 게시자에서의 삽입을 구독자에 적용할 수 없습니다. 7 = 업로드 삭제 실패: 구독자에서의 삭제를 게시자로 업로드할 수 없습니다. 8 = 다운로드 삭제 실패: 게시자에서의 삭제를 구독자로 다운로드할 수 없습니다. 9 = 업로드 업데이트 실패: 구독자에서의 업데이트를 게시자에 적용할 수 없습니다. 10 = 다운로드 업데이트 실패: 게시자에서의 업데이트를 구독자에 적용할 수 없습니다. 11 = 해결 방법 12 = 논리 레코드 업데이트/삭제 충돌 시 업데이트 적용: 충돌에서 적용하지 못한 삭제된 논리 레코드가 이 테이블에 기록됩니다. 13 = 논리 레코드 삽입/업데이트 충돌: 논리 레코드 삽입이 업데이트와 충돌합니다. 14 = 논리 레코드 업데이트/삭제 충돌 시 삭제 적용: 충돌에서 적용하지 못한 업데이트된 논리 레코드가 이 테이블에 기록됩니다. |
reason_code |
int |
상황에 따른 오류 코드입니다. 업데이트/업데이트 및 업데이트/삭제 충돌의 경우 이 열에는 conflict_type 값과 동일한 값이 사용됩니다. 그러나 실패한 변경 충돌의 경우에는 병합 에이전트에서 변경 내용을 적용하지 못하게 하는 오류가 이유 코드에 사용됩니다. 예를 들어 병합 에이전트에서 기본 키 위반으로 인해 구독자에 삽입을 적용할 수 없는 경우 conflict_type에는 6("다운로드 삽입 실패")이, reason_code에는 2627(기본 키 위반에 대한 다음 SQL Server 내부 오류 메시지)이 기록됩니다. "%ls 제약 조건 '%.*ls'을(를) 위반했습니다. 개체 '%.*ls'에 중복 키를 삽입할 수 없습니다." |
reason_text |
nvarchar(720) |
상황에 따른 오류 설명입니다. |
pubid |
uniqueidentifier |
게시의 식별자입니다. |
MSrepl_create_time |
datetime |
충돌 발생 시각입니다. |
origin_datasource_id |
uniqueidentifier |
충돌을 일으키는 변경이 시작된 데이터베이스의 식별자입니다. |