Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se:SQL Server
Remove um artigo de uma publicação de mesclagem. Esse procedimento armazenado é executado no Publicador, no banco de dados publicador.
Convenções de sintaxe de Transact-SQL
Sintaxe
sp_dropmergearticle
[ @publication = ] N'publication'
, [ @article = ] N'article'
[ , [ @ignore_distributor = ] ignore_distributor ]
[ , [ @reserved = ] reserved ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ , [ @ignore_merge_metadata = ] ignore_merge_metadata ]
[ ; ]
Argumentos
@publication [ = ] N'publicação'
O nome da publicação da qual um artigo será retirado. @publication é sysname, sem padrão.
@article [ = ] N'artigo'
O nome do artigo a ser retirado da publicação fornecida.
@article é sysname, sem padrão. Se all, todos os artigos existentes na publicação de mesclagem especificada serão removidos.
Mesmo @article sejaall, a publicação ainda deve ser descartada separadamente do artigo.
@ignore_distributor [ = ] ignore_distributor
Indica se esse procedimento armazenado será executado sem se conectar ao Distribuidor.
@ignore_distributor é bit, com um padrão de 0.
@reserved [ = ] reservado
Reservado para uso futuro.
@reserved é bit, com um padrão de 0.
@force_invalidate_snapshot [ = ] force_invalidate_snapshot
Habilita ou desabilita a capacidade de ter um instantâneo invalidado.
@force_invalidate_snapshot é bit, com um padrão de 0.
0Especifica que as alterações no artigo de mesclagem não fazem com que o instantâneo seja inválido.1significa que as alterações no artigo de mesclagem podem fazer com que o instantâneo seja inválido e, se for esse o caso, um valor de1dá permissão para que o novo instantâneo ocorra.
@force_reinit_subscription [ = ] force_reinit_subscription
Confirma que a remoção do artigo exige que as assinaturas existentes sejam reinicializadas.
@force_reinit_subscription é bit, com um padrão de 0.
0Especifica que descartar o artigo não faz com que a assinatura seja reinicializada.1significa que descartar o artigo faz com que as assinaturas existentes sejam reinicializadas e dá permissão para que a reinicialização da assinatura ocorra.
@ignore_merge_metadata [ = ] ignore_merge_metadata
Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.
Valores do código de retorno
0 (sucesso) ou 1 (falha).
Comentários
sp_dropmergearticle é usado na replicação de mesclagem. Para obter mais informações sobre como descartar artigos, consulte Adicionar artigos e descartar artigos de publicações existentes.
A execução sp_dropmergearticle para descartar um artigo de uma publicação não remove o objeto do banco de dados de publicação ou o objeto correspondente do banco de dados de assinatura. Use DROP <object> para remover esses objetos manualmente, se necessário.
Permissões
Somente membros da função de servidor fixa sysadmin ou da função de banco de dados fixa db_owner podem executar sp_dropmergearticleo .
Exemplos
Os exemplos de código neste artigo usam o banco de dados de exemplo AdventureWorks2025 ou AdventureWorksDW2025, que você pode baixar na página inicial Microsoft SQL Server Samples and Community Projects.
R. Remover artigos de uma publicação de mesclagem
USE [AdventureWorks2022];
GO
DECLARE @publication AS SYSNAME;
DECLARE @article1 AS SYSNAME;
DECLARE @article2 AS SYSNAME;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @article1 = N'SalesOrderDetail';
SET @article2 = N'SalesOrderHeader';
EXECUTE sp_dropmergearticle
@publication = @publication,
@article = @article1,
@force_invalidate_snapshot = 1;
EXECUTE sp_dropmergearticle
@publication = @publication,
@article = @article2,
@force_invalidate_snapshot = 1;
GO
B. Filtros de junção de mesclagem e artigos relacionados
USE [AdventureWorks2022];
GO
DECLARE @publication AS SYSNAME;
DECLARE @table1 AS SYSNAME;
DECLARE @table2 AS SYSNAME;
DECLARE @table3 AS SYSNAME;
DECLARE @salesschema AS SYSNAME;
DECLARE @hrschema AS SYSNAME;
DECLARE @filterclause AS NVARCHAR (1000);
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @table1 = N'Employee';
SET @table2 = N'SalesOrderHeader';
SET @table3 = N'SalesOrderDetail';
SET @salesschema = N'Sales';
SET @hrschema = N'HumanResources';
SET @filterclause = N'Employee.LoginID = HOST_NAME()';
-- Drop the merge join filter between SalesOrderHeader and SalesOrderDetail.
EXECUTE sp_dropmergefilter
@publication = @publication,
@article = @table3,
@filtername = N'SalesOrderDetail_SalesOrderHeader',
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
-- Drop the merge join filter between Employee and SalesOrderHeader.
EXECUTE sp_dropmergefilter
@publication = @publication,
@article = @table2,
@filtername = N'SalesOrderHeader_Employee',
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
-- Drop the article for the SalesOrderDetail table.
EXECUTE sp_dropmergearticle
@publication = @publication,
@article = @table3,
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
-- Drop the article for the SalesOrderHeader table.
EXECUTE sp_dropmergearticle
@publication = @publication,
@article = @table2,
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
-- Drop the article for the Employee table.
EXECUTE sp_dropmergearticle
@publication = @publication,
@article = @table1,
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
GO