Проблема
Рассмотрим следующий сценарий.
- Репликация используется в Microsoft SQL Server 2012 или SQL Server 2014.
- Вы добавляете подписку в подписку репликации, а затем удаляете ее.
В этом сценарии вы можете получить следующую ошибку 515:
Примечание
Невозможно вставить значение NULL в столбец "article_id", таблица "<DistributionDatabaseName.dbo>". MSrepl_commands'; столбец не допускает пустых значений NULL. Ошибка операции INSERT.
Причина
Проблема возникает из-за регрессии SQL Server 2012. Когда вы добавляете подписку, а затем удаляете ее, метаданные репликации о подписке немедленно удаляются, поскольку существует задержка, прежде чем LogReader обнаружит команду добавления подписки.
Решение
Эта проблема была впервые исправлена в следующем накопительном пакете обновления 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 содержит все исправления и исправления безопасности, которые входили в состав предыдущего накопительного пакета обновления. Ознакомьтесь с последними накопительными пакетами обновления для SQL Server:
- Последний накопительный пакет обновления для SQL Server 2012 с пакетом обновления 2 (SP2)
- Последний накопительный пакет обновления для SQL Server 2014
- Последний накопительный пакет обновления для SQL Server 2012 с пакетом обновления 1 (SP1)
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».