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

  1. 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

  2. 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.

  3. (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

  1. 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.

  2. 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.

  3. (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.