Symptom
Anta att du har en konfiguration där Microsoft SQL Server 2016 fungerar som distributör och SQL Server 2014 eller SQL Server 2012 fungerar som utgivare. Om du i den här konfigurationen skapar en ögonblicksbild eller en transaktions- eller kopplingspublikation på SQL Server 2012 eller SQL Server 2014 Publisher med användardefinierad funktion (UDF) som en artikel, misslyckas ögonblicksbildsagenten när du skriptar UDF och du får ett felmeddelande som liknar följande:
Obs
Skriptet misslyckades för UserDefinedFunction schema.functionname
Följande felmeddelande visas i jobbhistoriken för Snapshot Agent:
Obs
<DateTime> [5%] Replikeringsagenten hade påträffat ett undantag
<DateTime> Source: Okänd
<DateTime> Undantagstyp: Microsoft.SqlServer.Management.Smo.FailedOperationException
<DateTime> undantagsmeddelande: Skriptet misslyckades för UserDefinedFunction 'schema.functionname'
<Meddelandekod för datum/tid> : Ej tillämpligt
Orsak
Det här problemet beror på att Snapshot Agent använder SMO Miscrosft.SqlServer.Smo.dll för att skripta artiklar. SQL Server 2016 lägger till en ny SMO-egenskap IsNativelyCompiled för In-Memory funktioner/lagrade procedurer. Den här egenskapen visas inte i SQL Server vars version är tidigare än SQL Server 2016. När du kör Snapshot Agent på Distributor för SQL Server 2016 använder den Microsoft.SqlServer.Smo.dll av SQL Server 2016, men den försöker söka efter SMO-egenskapen IsNativelyCompiled mot SQL Server 2012 eller 2014 Publisher och den misslyckas med ovanstående fel.
Lösning
Det här problemet åtgärdas i följande kumulativa uppdateringar för SQL Server:
Kumulativ uppdatering 2 för SQL Server 2016 SP1
Kumulativ uppdatering 4 för SQL Server 2016
Om kumulativa uppdateringar för SQL Server
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:
Senaste kumulativa uppdateringen för SQL Server 2016
Lösning
Lös problemet genom att skapa användardefinierade funktioner (UDF) manuellt på prenumeranten.
Status
Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".
Referenser
Läs om den terminologi som Microsoft använder för att beskriva programuppdateringar.