Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область применения: SQL Server Управляемый экземпляр SQL Azure
В этом разделе описывается удаление статьи в SQL Server с помощью объектов Transact-SQL или объектов управления репликацией (RMO). Сведения об условиях, при которых статьи могут быть удалены, и о том, требуется ли при удалении статьи создание нового моментального снимка или повторная инициализация подписок, см. в этой статье.
В этом разделе
Для удаления статьи используется:
Использование Transact-SQL
Статьи можно удалять программно, с помощью хранимых процедур репликации. Хранимые процедуры, используемые для этого, зависят от типа публикации, к которой принадлежит статья.
Удаление статьи из публикации моментальных снимков или публикации транзакций
Выполните sp_droparticle (Transact-SQL), чтобы удалить статью, указанную @article, из публикации, указанной @publication. Укажите значение 1 в параметре @force_invalidate_snapshot.
(Необязательно) Чтобы полностью удалить опубликованный объект из базы данных, выполните команду
DROP <objectname>на издателе для базы данных публикации.
Удаление статьи из публикации слиянием
Выполните sp_dropmergearticle (Transact-SQL), чтобы удалить статью, указанную @article, из публикации, указанной @publication. При необходимости укажите значение 1 в параметре @force_invalidate_snapshot и значение 1 в параметре @force_reinit_subscription.
(Необязательно) Чтобы полностью удалить опубликованный объект из базы данных, выполните команду
DROP <objectname>на издателе для базы данных публикации.
Примеры (Transact-SQL)
В следующем примере удаляется статья из публикации транзакций. Поскольку это изменение приведет к недопустимости существующего моментального снимка, в параметре @force_invalidate_snapshot указывается значение 1 .
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @article = N'Product';
-- Drop the transactional article.
USE [AdventureWorks]
EXEC sp_droparticle
@publication = @publication,
@article = @article,
@force_invalidate_snapshot = 1;
GO
В следующем примере две статьи удаляются из публикации слиянием. Поскольку эти изменения приведут к недействительности существующего моментального снимка, в параметре @force_invalidate_snapshot указывается значение 1 .
DECLARE @publication AS sysname;
DECLARE @article1 AS sysname;
DECLARE @article2 AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @article1 = N'SalesOrderDetail';
SET @article2 = N'SalesOrderHeader';
-- Remove articles from a merge publication.
USE [AdventureWorks]
EXEC sp_dropmergearticle
@publication = @publication,
@article = @article1,
@force_invalidate_snapshot = 1;
EXEC sp_dropmergearticle
@publication = @publication,
@article = @article2,
@force_invalidate_snapshot = 1;
GO
При помощи объектов RMO
Удаление статьи можно произвести программным путем с помощью объектов RMO. Какие именно классы RMO будут для этого применяться, зависит от типа публикации, которой принадлежит подписка.
Удаление статьи, принадлежащей публикации моментальных снимков или транзакций
Создайте соединение с издателем с помощью класса ServerConnection .
Создайте экземпляр класса TransArticle.
Установите свойства Name, PublicationNameи DatabaseName .
Установите полученное на шаге 1 соединение в качестве значения свойства ConnectionContext .
Проверьте свойство IsExistingObject , чтобы убедиться, что статья существует. Если это свойство имеет значение false, значит, на шаге 3 были неправильно заданы свойства статьи либо статья не существует.
Вызовите метод Remove .
Закройте все соединения.
Удаление статьи, принадлежащей публикации слиянием
Создайте соединение с издателем с помощью класса ServerConnection .
Создайте экземпляр класса MergeArticle.
Установите свойства Name, PublicationNameи DatabaseName .
Установите полученное на шаге 1 соединение в качестве значения свойства ConnectionContext .
Проверьте свойство IsExistingObject , чтобы убедиться, что статья существует. Если это свойство имеет значение false, значит, на шаге 3 были неправильно заданы свойства статьи либо статья не существует.
Вызовите метод Remove .
Закройте все соединения.