Проблемы
Рассмотрим следующий сценарий.
-
Репликация используется в Microsoft SQL Server 2012 или SQL Server 2014.
-
Вы добавите подписку в подписку на репликацию и удалите ее.
В этом случае может появиться следующее сообщение об ошибке 515:
Не удается вставить значение NULL в столбец "article_id", таблица "<DistributionDatabaseName> .dbo.MSrepl_commands"; столбец не допускает значения NULL. ВСТАВКА завершается сбоем.
Причина
Эта проблема возникает из-за регрессии SQL Server 2012. Когда вы добавляете подписку, а затем удаляете ее, метаданные репликации о подписке немедленно удаляются, так как задержка перед тем, как средство чтения встречает команду для добавления подписки.
Решение
Эта проблема впервые устранена в следующем накопительном обновлении SQL Server.
Накопительное обновление 1 для SQL Server 2012 с пакетом обновления 2 (SP2) /en-us/help/2976982
Накопительное обновление 2 для SQL Server 2014 /en-us/help/2967546
Накопительное обновление 10 для SQL Server 2012 с пакетом обновления 1 (SP1) /en-us/help/2954099
Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".