MSSQL 2014: 충돌 테이블이 없습니다.

Microsoft.SQLServer.2014.Conflict_table__does_not_exist_1_5_Rule (Rule)

병합 아티클에 열을 추가하거나 삭제하려고 하지만 수정된 아티클의 sysmergearticles에 지정된 충돌 테이블이 데이터베이스에 실제로 없는 경우 이 오류가 발생합니다.

Knowledge Base article:

요약

이 오류는 병합 아티클에 열을 추가하거나 삭제하려고 하지만 수정된 아티클의 sysmergearticles에 지정된 충돌 테이블이 데이터베이스에 실제로 없을 때 발생합니다.

충돌 테이블에 특수 문자가 있으면 이 문제의 변형이 발생합니다.

해결 방법

충돌 테이블이 없는 데이터베이스에서 DBCC CHECKDB를 실행하여 데이터 일관성 문제가 없는지 확인합니다.

구독자에 충돌 테이블이 없는 경우 해당 구독을 삭제하고 다시 만듭니다. 게시자에 충돌 테이블이 없는 경우 모든 구독을 삭제하고 해당 게시를 삭제한 다음 게시 및 모든 구독을 다시 만듭니다.

재정의 가능한 매개 변수

이름

설명

기본값

사용

워크플로를 사용하거나 사용하지 않도록 설정합니다.

우선 순위

알림 우선 순위를 정의합니다.

1

심각도

알림 심각도를 정의합니다.

2

Element properties:

TargetMicrosoft.SQLServer.2014.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID21286
Event Source$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2014: 충돌 테이블이 없습니다.
{0}
Event LogApplication
CommentMom2014ID='{34AF1ABB-842B-4C90-85D5-0F90F1BDBF6F}';MOM2014GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.Windows.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2014.Conflict_table__does_not_exist_1_5_Rule" Target="SQL2014Core!Microsoft.SQLServer.2014.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2014ID='{34AF1ABB-842B-4C90-85D5-0F90F1BDBF6F}';MOM2014GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>21286</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2014.Conflict_table__does_not_exist_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>