Sintomi
Supponiamo che tu usi la replica di tipo merge in Microsoft SQL Server 2012 o SQL Server 2014 e Aggiungi nuovi articoli con i filtri di join alle pubblicazioni esistenti. Quando gli abbonati esistenti iniziano la sincronizzazione (subito dopo l'aggiunta di nuovi articoli) e quindi la sincronizzazione viene interrotta, la sincronizzazione successiva potrebbe non riuscire con un errore di chiave duplicato su dbo. sysmergesubsetfilters fino a quando non vengono reinizializzati gli abbonati interessati. Il messaggio di errore è simile al seguente:
Origine: Merge Replication ProviderNumber:-2147201001Message: il processo di Unione non è riuscito a recapitare lo snapshot al Sottoscrittore. Se si usa la sincronizzazione Web, il processo di Unione potrebbe non essere in grado di creare o scrivere nel file del messaggio. Quando si esegue la risoluzione dei problemi, riavviare la sincronizzazione con la registrazione dettagliata della cronologia e specificare un file di output a cui scrivere. Origine: numero di Microsoft SQL Server Native Client 11.0:2601Message: Impossibile inserire la riga di chiave duplicata nell'oggetto ' dbo. sysmergesubsetfilters ' con l'indice univoco ' uc2sysmergesubsetfilters '. Il valore della chiave duplicata è (<valore di chiave>, <nome di tabella>).
Risoluzione
Il problema è stato risolto per la prima volta nel seguente aggiornamento cumulativo di SQL Server:
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. È consigliabile scaricare e installare gli aggiornamenti cumulativi più recenti per SQL Server:
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".