Symptomen
Stel dat u een installatie hebt waarbij Microsoft SQL Server 2016 optreedt als distributeur en SQL Server 2014 of SQL Server 2012 als uitgever. Als u in deze configuratie een momentopname, of een transactionele of samenvoegingspublicatie maakt in SQL Server 2012 of SQL Server 2014 Publisher met een door de gebruiker gedefinieerde functie (UDF) als artikel, mislukt Snapshot-agent tijdens het uitvoeren van scripts voor UDF en wordt een foutbericht van de volgende strekking weergegeven:
Opmerking
Script is mislukt voor UserDefinedFunction 'schema.functionname'
Het volgende foutbericht wordt weergegeven in de taakgeschiedenis van Snapshot Agent:
Opmerking
<DateTime> [5%] Er is een uitzondering opgetreden in de replicatieagent
<DateTime-bron> : Onbekend
<DateTime-uitzonderingstype> : Microsoft.SqlServer.Management.Smo.FailedOperationException
<DateTime-uitzonderingsbericht> : script voor UserDefinedFunction 'schema.functionname' is mislukt
<DateTime-berichtcode> : niet van toepassing
Oorzaak
Dit probleem treedt op omdat de Snapshot-agent SMO-Miscrosft.SqlServer.Smo.dll gebruikt om artikelen te scripten. SQL Server 2016 voegt een nieuwe SMO-eigenschap, IsNativelyCompilated, toe voor In-Memory functies/opgeslagen procedures. Deze eigenschap wordt niet weergegeven in SQL Server waarvan de versie eerder is dan SQL Server 2016. Wanneer u de Snapshot Agent uitvoert op Distributor voor SQL Server 2016, gebruikt deze Microsoft.SqlServer.Smo.dll van SQL Server 2016, maar deze probeert te controleren op SMO-eigenschap IsNativeCompiled tegen SQL Server 2012 of 2014 Publisher en mislukt met de bovenstaande fout.
Oplossing
Dit probleem is opgelost in de volgende cumulatieve updates voor SQL Server:
Cumulatieve update 2 voor SQL Server 2016 SP1
Cumulatieve update 4 voor SQL Server 2016
Informatie over cumulatieve updates voor SQL Server
Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingspatches die deel uitmaakten van de vorige cumulatieve update. Bekijk de meest recente cumulatieve updates voor SQL Server:
Meest recente cumulatieve update voor SQL Server 2016
Tijdelijke oplossing
U kunt dit probleem omzeilen door door de gebruiker gedefinieerde functies handmatig op de abonnee te maken.
Status
Microsoft heeft bevestigd dat dit een probleem is bij de Microsoft-producten die worden vermeld in de sectie Van toepassing op.
Meer informatie
Meer informatie over de terminologie die Microsoft gebruikt om software-updates te beschrijven.