Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Remove um artigo de uma publicação de fusão. Este procedimento armazenado é executado no Publisher no banco de dados de publicação.
Transact-SQL convenções de sintaxe
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 ]
[ ; ]
Arguments
[ @publication = ] N'publicação'
O nome da publicação de onde se deve lançar um artigo. @publication é sysname, sem padrão.
[ @article = ] N'artigo'
O nome do artigo deve ser retirado da publicação em questão.
@article é sysname, sem padrão. Se all, todos os artigos existentes na publicação de fusão especificada são removidos. Mesmo que @article seja all, a publicação deve ser retirada separadamente do artigo.
[ @ignore_distributor = ] ignore_distributor
Indica se este procedimento armazenado é executado sem se ligar 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 invalidar um snapshot.
@force_invalidate_snapshot é bit, com um padrão de 0.
0especifica que alterações ao artigo de fusão não tornam o snapshot inválido.1significa que alterações ao artigo de fusão podem tornar o snapshot inválido e, se for esse o caso, um valor de1dá permissão para que o novo snapshot ocorra.
@force_reinit_subscription [ = ] force_reinit_subscription
Reconhece que a retirada do artigo requer a reinicialização das subscrições existentes.
@force_reinit_subscription é bit, com um padrão de 0.
0Especifica que eliminar o artigo não faz com que a subscrição seja reinicializada.1significa que a eliminação do artigo faz com que as subscrições existentes sejam reinicializadas e dá permissão para que a reinicialização da subscrição ocorra.
[ @ignore_merge_metadata = ] ignore_merge_metadata
Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
Valores de código de retorno
0 (sucesso) ou 1 (fracasso).
Observações
sp_dropmergearticle é usado na replicação por fusão. Para mais informações sobre a retirada de artigos, consulte Adicionar Artigos e Eliminar Artigos de Publicações Existentes.
Executar sp_dropmergearticle a eliminação de um artigo de uma publicação não remove o objeto da base de dados da publicação nem o objeto correspondente da base de dados por subscrição. Use DROP <object> para remover estes objetos manualmente, se necessário.
Permissions
Apenas os membros do papel de servidor fixo de sysadmin ou do papel de base de dados fixa db_owner podem executar sp_dropmergearticle.
Examples
Os exemplos de código neste artigo usam o banco de dados de exemplo AdventureWorks2025 ou AdventureWorksDW2025, que pode ser descarregado da página inicial de Exemplos e Projetos da Comunidade do Microsoft SQL Server.
A. Remover artigos de uma publicação de fusão
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 drop merge 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