В этой статье описывается улучшение, позволяющее исключить таблицу, включенную в качестве статьи в публикацию репликации транзакций, из базы данных и публикаций. Таблица может быть удалена только в том случае, если свойство allow_drop имеет значение ИСТИНА во всех публикациях, содержащих таблицу (таблицы) в виде статьи. Если свойство установлено в значение FALSE для любой из публикаций, содержащих статью, то операция DROP TABLE завершится ошибкой и сообщит, что реплицированные статьи не могут быть удалены.
Если публикация (публикации) поддерживает DROP TABLE DDL, то операция DROP TABLE удалит таблицу из публикации и базы данных. Агент средства чтения журнала опубликует команду очистки для базы данных распространения удаленной таблицы и очистит метаданные издателя. Если средство чтения журнала не обработало все записи журнала, которые ссылаются на удаленную таблицу, оно будет игнорировать новые команды, связанные с удаленной таблицей. Уже обработанные записи будут доставлены в базу данных распространения. Они могут быть применены к базе данных подписчика, если агент распространения обработает их до того, как средство чтения журнала очистит устаревшие (удаленные) статьи.
Команда для включения поддержки выпадающих таблиц для публикации:exec sp_changepublication @publication = '<Publication Name>', @property = 'allow_drop', @value = 'true' Команда для включения поддержки перетаскиваемых таблиц при создании публикации:
exec sp_addpublication @publication = '<Publication Name>', ..., @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 и его компонентов