Conflitti nella replica di tipo merge avanzata - Sistemi di risoluzione basati su COM
Si applica a: SQL Server
Tutti i resolver basati su COM forniti con SQL Server gestiscono i conflitti di aggiornamento e, dove indicato, gestiscono anche conflitti di inserimento ed eliminazione. Tutti i sistemi gestiscono il rilevamento a livello di colonna e la maggior parte di essi gestisce anche il rilevamento a livello di riga. Questi e tutti gli altri sistemi di risoluzione dei conflitti basati su COM dichiarano i tipi di conflitto che possono gestire. Per tutti gli altri tipi di conflitti l'agente di merge utilizza il sistema di risoluzione dei conflitti predefinito.
I resolver vengono installati durante il processo di installazione per SQL Server. Eseguire la stored procedure sp_enumcustomresolvers per visualizzare tutti i sistemi di risoluzione dei conflitti registrati in un computer. Questa operazione consente di visualizzare la descrizione e l'identificatore univoco globale (GUID) per ogni sistema di risoluzione dei conflitti in un set di risultati distinto.
Per specificare un sistema di risoluzione dei conflitti, vedere Specify a Merge Article Resolver.
Nella tabella seguente vengono descritti gli attributi dei sistemi di risoluzione dei conflitti specifici.
Nome | Input richiesto | Descrizione | Commenti |
---|---|---|---|
Microsoft SQL Server Additive Conflict Resolver | Nome della colonna da sommare. Il tipo di dati deve essere aritmetico, ad esempio int, smallint, numerice così via. | La riga in conflitto confermata viene determinata in base al valore di priorità. I valori della colonna specificati sono impostati sulla somma dei valori delle colonne di origine e di destinazione. Se un valore è impostato su NULL, i valori della colonna verranno impostati sul valore dell'altra colonna. | Supporta conflitti di aggiornamento con rilevamento solo a livello di colonna. |
Microsoft SQL Server Averaging Conflict Resolver | Nome della colonna di cui eseguire la media. Il tipo di dati deve essere aritmetico, ad esempio int, smallint, numerice così via. | La riga in conflitto confermata viene determinata in base al valore di priorità. I valori della colonna risultanti sono impostati sulla media dei valori delle colonne di origine e di destinazione. Se un valore è impostato su NULL, i valori della colonna verranno impostati sul valore dell'altra colonna. | Supporta conflitti di aggiornamento con rilevamento solo a livello di colonna. |
Microsoft SQL Server DATETIME (Earlier Wins) Conflict Resolver | Nome della colonna da utilizzare per determinare la riga in conflitto confermata. Il tipo di dati deve essere datetime . | La colonna con il valore datetime meno recente determina la riga in conflitto confermata. Se il valore di una colonna è impostato su NULL, prevale la riga contenente l'altro valore. | Supporta conflitti di aggiornamento con rilevamento a livello di riga e di colonna. I valori delle colonne vengono confrontati direttamente e non vengono eseguite regolazioni in base a fusi orari diversi. |
Microsoft SQL Server DATETIME (Later Wins) Conflict Resolver | Nome della colonna da utilizzare per determinare la riga in conflitto confermata. Il tipo di dati deve essere datetime . | La colonna con il valore datetime più recente determina la riga in conflitto confermata. Se il valore di una colonna è impostato su NULL, prevale la riga contenente l'altro valore. | Supporta conflitti di aggiornamento con rilevamento a livello di riga e di colonna. |
Microsoft SQL Server Maximum Conflict Resolver | Nome della colonna da utilizzare per determinare la riga in conflitto confermata. Il tipo di dati deve essere aritmetico, ad esempio int, smallint, numerice così via. | La colonna con il valore numerico maggiore determina la riga in conflitto confermata. Se il valore di una colonna è impostato su NULL, prevale la riga contenente l'altro valore. | Supporta il rilevamento a livello di riga e di colonna. |
Microsoft SQL Server Minimum Conflict Resolver | Nome della colonna da utilizzare per determinare la riga in conflitto confermata. Il tipo di dati deve essere aritmetico, ad esempio int, smallint, numerice così via. | La colonna con il valore numerico minore determina la riga in conflitto confermata. Se il valore di una colonna è impostato su NULL, prevale la riga contenente l'altro valore. | Supporta conflitti di aggiornamento con rilevamento a livello di riga e di colonna. |
Sistema di risoluzione dei conflitti di testo unione di Microsoft SQL Server | Nome del delimitatore e della colonna di testo, ad esempio @resolver_info = '[col1][===]' . |
La riga in conflitto confermata viene determinata in base al valore di priorità. Le colonne di testo in conflitto sono impostate su valori uniti, rappresentati da un prefisso comune seguito da una parte univoca del server di pubblicazione, quindi dal delimitatore e infine dalla parte univoca del Sottoscrittore. | Supporta conflitti di aggiornamento con rilevamento solo a livello di colonna. |
Microsoft SQL Server Subscriber Always Wins Conflict Resolver | Non è richiesto alcun input. | Prevale il Sottoscrittore, indipendentemente dal fatto che sia l'origine o la destinazione. | Supporta tutti i tipi di conflitto. |
Microsoft SQL Server Priority Column Resolver | Nome della colonna da utilizzare per determinare la riga in conflitto confermata. Il tipo di dati deve essere aritmetico, ad esempio int, smallint, numerice così via. | La colonna con il valore numerico maggiore determina la riga in conflitto confermata. Se il valore di una colonna è impostato su NULL, prevale la riga contenente l'altro valore. | Supporta conflitti di aggiornamento con rilevamento a livello di riga e di colonna. |
Microsoft SQL Server Upload Only Conflict Resolver | Non è richiesto alcun input. | Le modifiche caricate nel server di pubblicazione vengono accettate. Le modifiche non vengono scaricate nel Sottoscrittore. | Supporta tutti i tipi di conflitto. |
Microsoft SQL Server Download Only Conflict Resolver | Non è richiesto alcun input. | Le modifiche caricate nel server di pubblicazione vengono rifiutate. Le modifiche vengono scaricate nel Sottoscrittore. | Supporta tutti i tipi di conflitto. |
Sistema di risoluzione stored procedure Microsoft SQLServer | Nome della stored procedure che il sistema di risoluzione dei conflitti deve chiamare per gestire il conflitto. | La risoluzione del conflitto dipende dalla logica nella stored procedure specificata. | Supporta i conflitti di aggiornamento. Per altre informazioni, vedere Implementare un sistema di risoluzione dei conflitti personalizzato per un articolo di tipo merge |
Vedi anche
Advanced Merge Replication Conflict Detection and Resolution
sp_enumcustomresolvers (Transact-SQL)