KB3170123 – Поддържа DROP TABLE DDL за статии, които са включени в транзакционна репликация в SQL Server 2014 или SQL Server 2016 SP1

Отнася се за
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Тази статия описва подобрение, което позволява таблица, която е включена като статия в публикация за репликация на транзакции, да бъде премахната от базата данни и публикациите. Таблицата може да бъде пропусната само ако свойството allow_drop е настроено на TRUE за всички публикации, които имат таблицата като статия. Ако свойството е настроено на FALSE за някоя от публикациите, които съдържат статията, операцията DROP TABLE ще бъде неуспешна и ще се отчете, че реплицираните статии не могат да бъдат отхвърлени.

Ако DROP TABLE DDL се поддържа от публикациите/публикациите, операцията DROP TABLE ще изтрие таблицата от публикацията и базата данни. Агентът за четене на регистрационни файлове ще публикува команда за почистване за базата данни за разпространение на пуснатата таблица и ще извърши почистването на метаданните на издателя. Ако четецът на регистрационни файлове не е обработил всички регистрационни записи, които препращат към отстранената таблица, той ще игнорира новите команди, свързани с отстранената таблица. Вече обработените записи ще бъдат доставени в базата данни за разпространение. Те могат да бъдат приложени към базата данни за абонати, ако агентът за разпространение ги обработи, преди четецът на регистрационни файлове да изчисти остарелите (изпуснати) статии.

Command to enable drop table support for a publication:exec sp_changepublication @publication = '<Publication Name>', @property = 'allow_drop', @value = 'true' Команда за разрешаване на поддръжката на drop table по време на създаването на публикация:

exec sp_addpublication @publication = '<Име> на публикацията', ..., @allow\_drop = N'true' Стойността по подразбиране на свойството allow_drop е зададена на False.

Решение

Този проблем е коригиран в следните кумулативни актуализации за SQL Server:

За кумулативните актуализации за SQL Server

Всяка нова кумулативна актуализация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били включени в предишната кумулативна актуализация. Прегледайте последните кумулативни актуализации за SQL Server:

Последна сборна актуализация за SQL Server 2016
        
      

Информация за сервизни пакетиТази функционалност е въведена за първи път в следните сервизни пакети за SQL Server:

За сервизните пакети за SQL Server

Сервизните пакети са кумулативни. Всеки нов сервизен пакет съдържа всички корекции, които са в предишните сервизни пакети, заедно с всички нови корекции. Нашата препоръка е да се приложи най-новият сервизен пакет и най-новата кумулативна актуализация за този сервизен пакет. Не е необходимо да инсталирате предишен сервизен пакет, преди да инсталирате най-новия сервизен пакет. Използвайте таблица 1 в следващата статия, за да намерите повече информация относно най-новия сервизен пакет и най-новата кумулативна актуализация.

Как да определите версията, изданието и нивото на актуализация на SQL Server и неговите компоненти