Problembeschreibung
Angenommen, Sie verfügen über ein Setup, in dem Microsoft SQL Server 2016 als Verteiler fungiert und SQL Server 2014 oder SQL Server 2012 als Publisher fungiert. Wenn Sie in diesem Setup einen Schnappschuss oder eine Transaktions-oder Mergeveröffentlichung auf SQL Server 2012 oder SQL Server 2014 Publisher mit benutzerdefinierter Funktion (User-Defined Function, UDF) als Artikel erstellen, schlägt der Snapshot-Agent beim Skripting-UDF fehl, und es wird eine Fehlermeldung angezeigt, die der folgenden ähnelt:
Fehler beim Skript für UserDefinedFunction ' Schema. Funktionsname '
Die folgende Fehlermeldung wird aus dem Auftragsverlauf des Snapshot-Agents angezeigt:
<DateTime-> [5%] der Replikations-Agent hat eine Ausnahme<DateTime-> Quelle gefunden: Unknown<DateTime> Ausnahmetyp: Microsoft. SqlServer. Management. Smo. FailedOperationException<DateTime-> Ausnahmemeldung: Skriptfehler bei UserDefinedFunction "Schema. Funktionsname" <DateTime-> Nachrichten Code: nicht zutreffend
Ursache
Dieses Problem tritt auf, weil der Snapshot-Agent SMO MiscroSFT verwendet. SqlServer. Smo. dll zum Erstellen von Skript Artikeln. SQL Server 2016 fügt eine neue SMO-Eigenschaft IsNativelyCompiled für speicherresidente Funktionen/gespeicherte Prozeduren hinzu. Diese Eigenschaft wird in SQL Server, dessen Version älter als SQL Server 2016 ist, nicht angezeigt. Wenn Sie den Snapshot-Agent auf dem Verteiler für SQL Server 2016 ausführen, wird Microsoft. SqlServer. Smo. dll von SQL Server 2016 verwendet, aber er versucht, die SMO-Eigenschaft IsNativelyCompiled gegen SQL Server 2012 oder 2014 Publisher zu überprüfen, und er schlägt mit dem obigen Fehler fehl.
Fehlerbehebung
Dieses Problem wurde in den folgenden kumulativen Updates für SQL Server behoben: Kumulatives Update 2 für SQL Server 2016 SP1Kumulatives Update 4 für SQL Server 2016
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Schauen Sie sich die neuesten kumulativen Updates für SQL Server an: Neuestes Kumulatives Update für SQL Server 2016
Problemumgehung
Um dieses Problem zu umgehen, erstellen Sie benutzerdefinierte Funktionen (UDF 's) manuell auf dem Abonnenten.
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Informationsquellen
Erfahren Sie mehr über die Terminologie, mit der Microsoft Softwareupdates beschreibt.