Partilhar via


sp_changemergepublication (Transact-SQL)

Aplica-se: SQL Server

Altera as propriedades 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_changemergepublication
    [ @publication = ] N'publication'
    [ , [ @property = ] N'property' ]
    [ , [ @value = ] N'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ ; ]

Argumentos

@publication [ = ] N'publicação'

O nome da publicação. @publication é sysname, sem padrão.

@property [ = ] N'propriedade'

A propriedade a ser alterada para a publicação determinada. @property é sysname e pode ser um dos valores listados na tabela a seguir.

@value [ = ] N'valor'

O novo valor da propriedade especificada. @value é nvarchar(255), com um padrão de NULL.

e pode ser um dos valores listados na tabela a seguir.

Essa tabela descreve as propriedades da publicação que podem ser alteradas e as restrições nos valores dessas propriedades.

Propriedade Valor Descrição
allow_anonymous true Assinaturas anônimas são permitidas.
false Assinaturas anônimas não são permitidas.
allow_partition_realignment true Exclusões são enviadas para o Assinante para refletir os resultados de uma alteração de partição, removendo dados que não pertencem mais à partição do Assinante. Esse é o comportamento padrão.
false Os dados de uma partição antiga são deixados no Assinante, onde as alterações feitas nesses dados no Publicador não são replicadas para esse Assinante. Em vez disso, as alterações feitas no Assinante serão replicadas no Publicador. Isso é usado para reter dados em uma assinatura de uma partição antiga quando os dados precisam estar acessíveis para fins de histórico.
allow_pull true São permitidas assinaturas pull para a publicação determinada.
false Assinaturas pull não são permitidas para a publicação fornecida.
allow_push true São permitidas assinaturas push para a publicação determinada.
false Assinaturas push não são permitidas para a publicação fornecida.
allow_subscriber_initiated_snapshot true O Assinante pode iniciar o processo de instantâneo.
false O assinante não pode iniciar o processo de instantâneo.
allow_subscription_copy true Você pode copiar os bancos de dados de assinatura que assinam essa publicação.
false Você não pode copiar os bancos de dados de assinatura que assinam esta publicação.
allow_synctoalternate true Permite um parceiro padrão de sincronização alternativo para fazer a sincronização com esse Publicador.
false Não permite que um parceiro de sincronização alternativo sincronize com este Publicador.
allow_web_synchronization true As assinaturas podem ser sincronizadas pelo HTTP.
false As assinaturas não podem ser sincronizadas por HTTPS.
alt_snapshot_folder Especifica o local da pasta alternativa para o instantâneo.
automatic_reinitialization_policy 1 As alterações são carregadas do Assinante antes que a assinatura seja reiniciada.
0 A assinatura é reiniciada sem primeiro carregar as alterações.
centralized_conflicts true Todos os registros de conflito são armazenados no Publicador. Se você alterar esta propriedade, os Assinantes existentes deverão ser reinicializados.
false Os registros de conflito são armazenados no servidor que perdeu na resolução de conflito. Se você alterar esta propriedade, os Assinantes existentes deverão ser reinicializados.
compress_snapshot true O instantâneo em uma pasta de instantâneo alternativa é compactado no formato CAB. O instantâneo na pasta de instantâneo padrão não pode ser compactado. A alteração dessa propriedade requer um novo instantâneo.
false Por padrão, o snapshot não é compactado. A alteração dessa propriedade requer um novo instantâneo.
conflict_logging publisher Registros de conflito são armazenados no Publicador.
subscriber Registros de conflito são armazenados no Assinante que causou o conflito. Não há suporte para Assinantes do SQL Server Compact.
both Registros de conflito são armazenados no Publicador e no Assinante.
conflict_retention Um int que especifica o período de retenção, em dias, para o qual os conflitos são mantidos. Definir conflict_retention como 0 significa que nenhuma limpeza de conflito é necessária.
description Descrição da publicação.
dynamic_filters true Publicação é filtrada com base em uma cláusula dinâmica.
false A publicação não é filtrada dinamicamente.
enabled_for_internet true A publicação está habilitada para a Internet. O FTP (Protocolo de Transferência de Arquivo) pode ser usado para transferir os arquivos de instantâneo para um Assinante. Os arquivos de sincronização da publicação são colocados no C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp diretório.
false A publicação não está habilitada para a Internet.
ftp_address O endereço de rede do serviço FTP para o Distribuidor. Especifica onde são armazenados arquivos de instantâneo de publicação.
ftp_login O nome de usuário usado na conexão com o serviço de FTP.
ftp_password A senha de usuário usada na conexão com o serviço de FTP.
ftp_port O número da porta do serviço FTP do Distribuidor. Especifica o número da porta TCP do site de FTP onde os arquivos de instantâneo de publicação são armazenados.
ftp_subdirectory Especifica onde os arquivos de instantâneo são criados se a publicação oferecer suporte a instantâneos de propagação usando o FTP.
generation_leveling_threshold int Especifica o número de alterações contidas em uma geração. Uma geração é uma coleção de alterações que é entregue a um Publicador ou Assinante.
keep_partition_changes true A sincronização é otimizada e somente Assinantes com linhas nas partições alteradas são afetados. A alteração dessa propriedade requer um novo instantâneo.
false A sincronização não é otimizada e as partições enviadas aos Assinantes são verificadas quando os dados são alterados em uma partição. A alteração dessa propriedade requer um novo instantâneo.
max_concurrent_merge Um int que representa o número máximo de processos de mesclagem simultâneos que podem ser executados em uma publicação. Se 0, não há limite. Se mais do que esse número de processos de mesclagem estiver agendado para ser executado ao mesmo tempo, os trabalhos excedentes serão colocados em uma fila até que um processo de mesclagem atual seja concluído.
max_concurrent_dynamic_snapshots Um int que representa o número máximo de sessões de instantâneo para gerar um instantâneo de dados filtrado que pode ser executado simultaneamente em uma publicação de mesclagem que usa filtros de linha com parâmetros. Se 0, não há limite. Se um número maior de processos de instantâneo for agendado para execução ao mesmo tempo, os trabalhos em excesso serão enfileirados e esperarão até que o processo de mesclagem atual seja concluído.
post_snapshot_script Especifica um ponteiro para um local de .sql arquivo. O Agente de Distribuição ou Agente de Mesclagem executará o script pós-instantâneo depois que todos os outros scripts de objeto replicado tentam sido aplicados durante uma sincronização inicial. A alteração dessa propriedade requer um novo instantâneo.
pre_snapshot_script Especifica um ponteiro para um local de .sql arquivo. O Agente de Mesclagem executará o script pré-instantâneo antes de qualquer script de objeto replicado, ao aplicar um instantâneo no Assinante. A alteração dessa propriedade requer um novo instantâneo.
publication_compatibility_level 100RTM SQL Server 2008 (10.0.x)
90RTM SQL Server 2005 (9.x)
publish_to_activedirectory true Esse parâmetro foi preterido e é mantido para compatibilidade com versões anteriores de scripts. Você não pode mais adicionar informações de publicação no Active Directory.
false Remove as informações de publicação do Active Directory.
replicate_ddl 1 Instruções DDL (Linguagem de Definição de Dados) executadas no Publicador são replicadas.
0 As instruções DDL não são replicadas.
retention Um int que representa o número de retention_period_unit unidades para as quais salvar as alterações para a publicação especificada. Se a assinatura não for sincronizada dentro do período de retenção e as alterações pendentes recebidas tiverem sido removidas por uma operação de limpeza no Distribuidor, a assinatura expirará e deverá ser reinicializada. O período máximo de retenção permitido é o número de dias entre 31 de dezembro de 9999 e a data atual.

Observação: o período de retenção para publicações de mesclagem tem um período de carência de 24 horas para acomodar assinantes em diferentes fusos horários.
retention_period_unit day O período de retenção é especificado em dias.
week O período de retenção é especificado em semanas.
month O período de retenção é especificado em meses.
year O período de retenção é especificado em anos.
snapshot_in_defaultfolder true Arquivos de instantâneo são armazenados na pasta de instantâneos padrão.
false Os arquivos de instantâneo são armazenados no local alternativo especificado pelo alt_snapshot_folder. Essa combinação especifica que os arquivos de instantâneo são armazenados nos locais padrão e alternativo.
snapshot_ready true Instantâneo disponível para a publicação.
false O instantâneo da publicação não está disponível.
status active Publicação com status ativo.
inactive Publicação com status inativo.
sync_mode native ou

bcp native
Saída de programa de cópia em massa em modo nativo de todas as tabelas é usada para o instantâneo inicial.
character

ou bcp character
A saída do programa de cópia em massa no modo de caractere de todas as tabelas é usada para o instantâneo inicial, que é necessário para todos os Assinantes não SQL Server.
use_partition_groups

Observação: Depois de usar grupos de partições, se você voltar a usar setupbelongse definir use_partition_groups=false o changemergearticle, isso pode não ser refletido corretamente depois que um instantâneo for tirado. Os gatilhos gerados pelo instantâneo são compatíveis com grupos de partições.

A solução alternativa para esse cenário é definir o status como Inativo, modificar o e, em seguida, definir o use_partition_groupsstatus como Ativo.
true A publicação usa partições pré-computadas.
false A publicação não usa partições pré-computadas.
validate_subscriber_info Lista as funções que estão sendo usadas para recuperar informações do Assinante. Em seguida, valida os critérios de filtragem dinâmica usados para o Assinante para verificar se as informações são particionadas de forma consistente.
web_synchronization_url Valor padrão do URL da Internet usado para sincronização da Web.
NULL (padrão) Retorna a lista de valores com suporte para @property.

@force_invalidate_snapshot [ = ] force_invalidate_snapshot

Confirma que a ação executada por esse procedimento armazenado pode invalidar um instantâneo existente. @force_invalidate_snapshot é bit, com um padrão de 0.

  • 0 Especifica que alterar a publicação não invalida o instantâneo. Se o procedimento armazenado detectar que a alteração requer um novo instantâneo, ocorrerá um erro e nenhuma alteração será feita.

  • 1 especifica que alterar a publicação pode invalidar o instantâneo. Se houver assinaturas existentes que exijam um novo instantâneo, dá permissão para que o instantâneo existente seja marcado como obsoleto e para que um novo instantâneo seja gerado.

Consulte a seção Comentários para obter as propriedades que, quando alteradas, exigem que um novo instantâneo seja gerado.

@force_reinit_subscription [ = ] force_reinit_subscription

Confirma que a ação executada por esse procedimento armazenado pode exigir que as assinaturas existentes sejam reinicializadas. @force_reinit_subscription é bit, com um padrão de 0.

  • 0 Especifica que a alteração da publicação não exige que as assinaturas sejam reinicializadas. Se o procedimento armazenado detectar que a alteração requer que as assinaturas existentes sejam reinicializadas, ocorrerá um erro e nenhuma alteração será feita.

  • 1 significa que as alterações na publicação reinicializam as assinaturas existentes e dão permissão para que a reinicialização da assinatura ocorra.

Consulte a seção Comentários para obter as propriedades que, quando alteradas, exigem que todas as assinaturas existentes sejam reinicializadas.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Comentários

sp_changemergepublication é usado na replicação de mesclagem.

A alteração das propriedades a seguir requer que um novo instantâneo seja gerado. Você deve especificar um valor de 1 para o parâmetro @force_invalidate_snapshot .

  • alt_snapshot_folder
  • compress_snapshot
  • dynamic_filters
  • ftp_address
  • ftp_login
  • ftp_password
  • ftp_port
  • ftp_subdirectory
  • post_snapshot_script
  • publication_compatibility_level (apenas para 80SP3 )
  • pre_snapshot_script
  • snapshot_in_defaultfolder
  • sync_mode
  • use_partition_groups

Alterar as propriedades a seguir requer que assinaturas existentes sejam reinicializadas. Você deve especificar um valor de 1 para o parâmetro @force_reinit_subscription .

  • dynamic_filters
  • validate_subscriber_info

Para listar objetos de publicação no Active Directory usando publish_to_active_directory, o objeto do SQL Server já deve ter sido criado no Active Directory.

Exemplos

DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge'; 

-- Disable DDL replication for the publication.
USE [AdventureWorks2022]
EXEC sp_changemergepublication 
  @publication = @publication, 
  @property = N'replicate_ddl', 
  @value = 0,
  @force_invalidate_snapshot = 0, 
  @force_reinit_subscription = 0;
GO

Permissões

Somente membros da função de servidor fixa sysadmin ou db_owner função de banco de dados fixa podem executar sp_changemergepublication.