Procedura: Visualizzazione delle informazioni sui conflitti per le pubblicazioni di tipo merge (programmazione Transact-SQL della replica)
Quando si risolve un conflitto in una replica di tipo merge, i dati della riga non confermata vengono scritti in una tabella di conflitti. I dati relativi al conflitto possono essere visualizzati a livello di programmazione tramite le stored procedure di replica. Per ulteriori informazioni, vedere Rilevamento e risoluzione avanzati dei conflitti nella replica di tipo merge.
Per visualizzare informazioni sul conflitto e i dati delle righe non confermate per tutti i tipi di conflitti
Nel database di pubblicazione del server di pubblicazione eseguire sp_helpmergepublication. Notare i valori delle colonne seguenti nel set di risultati:
centralized_conflicts: 1 indica che le righe con conflitti vengono archiviate nel server di pubblicazione, mentre 0 indica che le righe con conflitti non vengono archiviate nel server di pubblicazione.
decentralized_conflicts: 1 indica che le righe con conflitti vengono archiviate nel Sottoscrittore, mentre 0 indica che le righe con conflitti non vengono archiviate nel Sottoscrittore.
Nota
Per definire il comportamento della registrazione dei conflitti relativi a una pubblicazione di tipo merge, viene utilizzato il parametro @conflict_logging di sp_addmergepublication. Il parametro @centralized_conflicts non è più supportato.
Nella tabella seguente sono descritti i valori di queste colonne sulla base del valore specificato per @conflict_logging.
Valore di @conflict_logging
centralized_conflicts
decentralized_conflicts
publisher
1
0
subscriber
0
1
both
1
1
Nel database di pubblicazione del server di pubblicazione o nel database di sottoscrizione del Sottoscrittore eseguire sp_helpmergearticleconflicts. Specificare il valore @publication per restituire le informazioni sui conflitti solo per articoli che appartengono a una pubblicazione specifica. In tal modo per gli articoli con conflitti verranno restituite le informazioni della tabella dei conflitti. Notare il valore di conflict_table per qualsiasi articolo di interesse. Se il valore di conflict_table per un articolo è NULL, eliminare i conflitti che si sono verificati in questo articolo.
(Facoltativo) Rivedere le righe con conflitti presenti negli articoli di interesse. A seconda dei valori di centralized_conflicts e decentralized_conflicts ottenuti al passaggio 1, eseguire una delle operazioni seguenti:
Nel database di pubblicazione del server di pubblicazione eseguire sp_helpmergeconflictrows. Specificare una tabella dei conflitti per l'articolo (ottenuta al passaggio 1) per @conflict_table. (Facoltativo) Specificare il valore @publication per limitare le informazioni restituite sui conflitti a una pubblicazione specifica. In tal modo verranno restituiti i dati della riga e altre informazioni sulla riga non confermata.
Nel database di sottoscrizione del Sottoscrittore eseguire sp_helpmergeconflictrows. Specificare una tabella dei conflitti per l'articolo (ottenuta al passaggio 1) per @conflict_table. In tal modo verranno restituiti i dati della riga e altre informazioni sulla riga non confermata.
Per visualizzare informazioni solo sui conflitti in cui non è stata eseguita l'eliminazione
Nel database di pubblicazione del server di pubblicazione eseguire sp_helpmergepublication. Notare i valori delle colonne seguenti nel set di risultati:
centralized_conflicts: 1 indica che le righe con conflitti vengono archiviate nel server di pubblicazione, mentre 0 indica che le righe con conflitti non vengono archiviate nel server di pubblicazione.
decentralized_conflicts: 1 indica che le righe con conflitti vengono archiviate nel Sottoscrittore, mentre 0 indica che le righe con conflitti non vengono archiviate nel Sottoscrittore.
Nota
Per definire il comportamento della registrazione dei conflitti relativi a una pubblicazione di tipo merge, viene utilizzato il parametro @conflict_logging di sp_addmergepublication. Il parametro @centralized_conflicts non è più supportato.
Nel database di pubblicazione del server di pubblicazione o nel database di sottoscrizione del Sottoscrittore eseguire sp_helpmergearticleconflicts. Specificare il valore @publication per restituire le informazioni della tabella dei conflitti solo per articoli che appartengono a una pubblicazione specifica. In tal modo per gli articoli con conflitti verranno restituite le informazioni della tabella dei conflitti. Notare il valore di source_object per qualsiasi articolo di interesse. Se il valore di conflict_table per un articolo è NULL, eliminare i conflitti che si sono verificati in questo articolo.
(Facoltativo) Rivedere le informazioni sui conflitti per i conflitti di eliminazione. A seconda dei valori di centralized_conflicts e decentralized_conflicts ottenuti al passaggio 1, eseguire una delle operazioni seguenti:
Nel database di pubblicazione del server di pubblicazione eseguire sp_helpmergedeleteconflictrows. Specificare il nome della tabella di origine (ottenuta al passaggio 1) nella quale si verifica il conflitto per @source_object. (Facoltativo) Specificare il valore @publication per limitare le informazioni restituite sui conflitti a una pubblicazione specifica. In tal modo verranno restituite solo le informazioni sui conflitti di eliminazione archiviate nel server di pubblicazione.
Nel database di sottoscrizione del Sottoscrittore eseguire sp_helpmergedeleteconflictrows. Specificare il nome della tabella di origine (ottenuta al passaggio 1) nella quale si verifica il conflitto per @source_object. (Facoltativo) Specificare il valore @publication per limitare le informazioni restituite sui conflitti a una pubblicazione specifica. In tal modo verranno restituite solo le informazioni sui conflitti di eliminazione archiviate nel Sottoscrittore.