MSSQL 2014 : La table de conflits n'existe pas

Microsoft.SQLServer.2014.Conflict_table__does_not_exist_1_5_Rule (Rule)

Cette erreur se produit lorsque vous tentez d'ajouter ou de supprimer une colonne dans un article de fusion, alors que la table de conflits indiquée dans sysmergearticles pour l'article modifié n'existe pas dans la base de données.

Knowledge Base article:

Résumé

Cette erreur se produit lorsque vous tentez d’ajouter ou de supprimer une colonne dans un article de fusion, alors que la table de conflits indiquée dans sysmergearticles pour l’article modifié n’existe pas dans la base de données.

Ce problème se produit sous une autre forme lorsque la table de conflits contient un caractère spécial. Pour plus d’informations sur ce scénario, consultez l’article 307956 dans la Base de connaissances Microsoft.

Solutions

Exécutez DBCC CHECKDB dans la base de données avec la table de conflits manquante pour vérifier qu’il n’existe pas de problèmes de cohérence des données.

Si la table de conflits n'existe pas sur un Abonné, supprimez l'abonnement puis recréez-le. Si la table des conflits n'existe pas sur un serveur de publication, supprimez tous les abonnement, supprimez la publication puis recréez la publication et tous les abonnements.

Paramètres remplaçables

Nom

Description

Valeur par défaut

Activé

 

Oui

Génère des alertes

 

Oui

Priorité

 

1

Severité

 

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 : La table de conflits n'existe pas
{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>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>