Sintomi
Supponiamo di avere una configurazione in cui Microsoft SQL Server 2016 funge da distributore e SQL Server 2014 o SQL Server 2012 funge da Publisher. In questa configurazione, se si crea uno snapshot o una pubblicazione transazionale o di tipo merge in SQL Server 2012 o SQL Server 2014 Publisher con funzione definita dall'utente come articolo, l'agente snapshot non riesce durante gli script UDF e viene visualizzato un messaggio di errore simile al seguente:
Script non riuscito per il metodo ' schema. funzionename '
Il messaggio di errore seguente viene visualizzato nella cronologia dei processi dell'agente snapshot:
<DateTime> [5%] l'agente di replica ha rilevato un'eccezione<data di origine> DateTime: Unknown<tipo di eccezione DateTime>: Microsoft. SqlServer. Management. Smo. FailedOperationException<messaggio di eccezione DateTime>: script non riuscito per il codice del messaggio "Schema. funzione" <DateTime> Message: non applicabile
Causa
Questo problema si verifica perché l'agente snapshot USA SMO miscroSFT. SqlServer. Smo. dll per gli articoli script. SQL Server 2016 aggiunge un nuovo IsNativelyCompiled di proprietà SMO per le funzioni in memoria/stored procedure. Questa proprietà non è presentata in SQL Server la cui versione è precedente a SQL Server 2016. Quando si esegue l'agente snapshot nel distributore per SQL Server 2016, questo usa Microsoft. SqlServer. Smo. dll di sql server 2016, ma cerca di verificare la proprietà ISNATIVELYCOMPILED di SMO rispetto a SQL Server 2012 o 2014 Publisher e non riesce con l'errore precedente.
Risoluzione
Questo problema è stato risolto negli aggiornamenti cumulativi seguenti per SQL Server: Aggiornamento cumulativo 2 per SQL server 2016 SP1aggiornamento cumulativo 4 per SQL Server 2016
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server: Ultimo aggiornamento cumulativo per SQL Server 2016
Soluzione alternativa
Per risolvere il problema, creare manualmente le funzioni definite dall'utente nel Sottoscrittore.
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Riferimenti
Informazioni sulla terminologiautilizzata da Microsoft per descrivere gli aggiornamenti software.