KB2958062 - ИСПРАВЛЕНО: ошибка 515 при добавлении подписки и ее удалении в SQL Server 2012 или SQL Server 2014

Применяется к
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Проблема

Рассмотрим следующий сценарий.

  • Репликация используется в 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:

      

Состояние

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