Проблемы

Предположим, что у вас есть настройка, в которой Microsoft SQL Server 2016 действует как распространитель, а SQL Server 2014 или SQL Server 2012 — как Publisher. В этой настройке, если вы создаете моментальный снимок или публикацию транзакций или слиянием в SQL Server 2012 или SQL Server 2014 Publisher с пользовательской функцией UDF в качестве статьи, агент моментальных снимков завершает работу при выполнении сценария UDF и появляется сообщение об ошибке, подобное следующему:

Не удалось выполнить сценарий для UserDefinedFunction "Schema. FunctionName"

В журнале заданий агента моментальных снимков отображается следующее сообщение об ошибке:

<DateTime> [5%] агент репликации обнаружил исключение<DateTime> Source: Unknown<DateTime> Exception. FailedOperationException<DateTime> сообщение об ошибке: сценарий не удался для UserDefinedFunction ' Schema. имяФункции ' <DateTime> сообщение "не подходит.

Причина

Эта проблема возникает из-за того, что агент моментальных снимков использует SMO MiscroSFT. Применяйте сценарии для SQLServer. SMO. dll. Сервер SQL Server 2016 добавляет новое свойство SMO IsNativelyCompiled для функций и хранимых процедур в памяти. Это свойство не представлено в SQL Server, версия которого более ранней, чем SQL Server 2016. При запуске агента моментальных снимков на распространителе для SQL Server 2016 используется Microsoft. SqlServer. SMO. dll sql Server 2016, но он пытается проверить наличие свойств SMO IsNativelyCompiled в SQL Server 2012 или 2014 Publisher, после чего описанная выше ошибка не будет выполнена.

Решение

Эта проблема исправлена в перечисленных ниже накопительных обновлениях для SQL Server. Накопительное обновление 2 для SQL server 2016 SP1,накопительное обновление 4 для SQL Server 2016

Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server. Последнее накопительное обновление для SQL server 2016

Обходное решение

Чтобы обойти эту проблему, создайте пользовательские функции (UDF) на подписчике вручную.

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".

Ссылки

Ознакомьтесь с терминологией, которую корпорация Майкрософт использует для описания обновлений программного обеспечения.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.