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
sys.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 AdventureWorks2025, AdventureWorksDW2025, ou AdventureWorksLT2025 banco de dados de exemplo, que você pode baixar do repositório GitHub do Azure Data SQL Samples Repository.
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