Příznaky
Předpokládejme, že máte nastavení, kde Microsoft SQL Server 2016 funguje jako distributor a SQL Server 2014 nebo SQL Server 2012 funguje jako vydavatel. Pokud v tomto nastavení vytvoříte snímek, transakční nebo sloučenou publikaci na serveru SQL Server 2012 nebo SQL Server 2014 Publisher s uživatelsky definovanou funkcí (UDF) jako článkem, Snapshot Agent selže při skriptování UDF a zobrazí se chybová zpráva podobná následující:
Poznámka
Skript selhal pro UserDefinedFunction 'schema.functionname'
V historii úloh agenta snímku se zobrazí následující chybová zpráva:
Poznámka
<Datum a čas> [5 %] Agent replikace zjistil výjimku
<DateTime> Zdroj: neznámý
<Typ výjimky DateTime> : Microsoft.SqlServer.Management.Smo.FailedOperationException
<Zpráva o výjimce DateTime> : Skript se nezdařil pro UserDefinedFunction 'schema.functionname'
<DateTime> Kód zprávy: Not Applicable
Příčina
K tomuto problému dochází, protože agent snímku používá k skriptování článků Miscrosft.SqlServer.Smo.dll SMO. SQL Server 2016 přidává novou vlastnost SMO IsNativelyCompiled pro In-Memory funkce nebo uložené procedury. Tato vlastnost se nezobrazuje na SQL Server, jehož verze je starší než SQL Server 2016. Když spustíte agenta snímku v Distributoru pro SQL Server 2016, použije Microsoft.SqlServer.Smo.dll SQL Server 2016, ale pokusí se zkontrolovat vlastnost SMO IsNativelyCompiled proti SQL Server 2012 nebo 2014 Publisher a selže s výše uvedenou chybou.
Řešení
Tento problém je opravený v následujících kumulativních aktualizacích pro SQL Server:
Kumulativní aktualizace 2 pro SQL Server 2016 SP1
Kumulativní aktualizace 4 pro SQL Server 2016
Informace o kumulativních aktualizacích pro SQL Server
Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace pro SQL Server:
Nejnovější kumulativní aktualizace pro SQL Server 2016
Alternativní řešení
Pokud chcete tento problém obejít, vytvořte uživatelem definované funkce (UDF) ručně pro odběratele.
Stav
Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.
Reference
Podívejte se na informace o terminologii, kterou společnost Microsoft používá k popisování aktualizací softwaru.