sys.sp_changemergepublication (Transact-SQL)

Aplica-se a: SQL Server

Altera as propriedades 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

Syntax

sys.sp_changemergepublication
    [ @publication = ] N'publication'
    [ , [ @property = ] N'property' ]
    [ , [ @value = ] N'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ ; ]

Arguments

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

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

@property [ = ] N'propriedade'

A propriedade a alterar para a publicação em questão. @property é sysname, e pode ser um dos valores listados na tabela que se segue.

@value [ = ] N'valor'

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

, e pode ser um dos valores listados na tabela que se segue.

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

Property Value Description
allow_anonymous true São permitidas subscrições anónimas.
false Assinaturas anónimas não são permitidas.
allow_partition_realignment true As eliminações são enviadas ao Assinante para refletir os resultados de uma alteração de partição, removendo dados que já não fazem parte da partição do Assinante. Este é o comportamento padrão.
false Os dados de uma partição antiga ficam no Assinante, onde as alterações feitas a esses dados no Publisher não se replicam para esse Assinante. Em vez disso, as alterações feitas no Assinante replicam-se para o Publisher. Isto é usado para reter dados numa subscrição de uma partição antiga quando os dados têm de ser acessíveis para fins históricos.
allow_pull true São permitidas subscrições de pull para a publicação em questão.
false Não são permitidas subscrições por pull para a publicação em questão.
allow_push true São permitidas subscrições push para a publicação em questão.
false As subscrições push não são permitidas para a publicação em questão.
allow_subscriber_initiated_snapshot true O assinante pode iniciar o processo de snapshot.
false O assinante não pode iniciar o processo de snapshot.
allow_subscription_copy true Pode copiar as bases de dados de subscrição que subscrevem esta publicação.
false Não pode copiar as bases de dados por subscrição que subscrevem esta publicação.
allow_synctoalternate true Permite que um parceiro alternativo de sincronização se sincronize com este Publisher.
false Não permite que um parceiro alternativo de sincronização se sincronize com este Publisher.
allow_web_synchronization true As subscrições podem ser sincronizadas via HTTPS.
false As subscrições não podem ser sincronizadas via HTTPS.
alt_snapshot_folder Especifica a localização da pasta alternativa para o snapshot.
automatic_reinitialization_policy 1 As alterações são carregadas pelo Assinante antes de a subscrição ser reinicializada.
0 A subscrição é reiniciada sem antes carregar as alterações.
centralized_conflicts true Todos os registos de conflito são armazenados no Publisher. Se alterar esta propriedade, os Assinantes existentes devem ser reinicializados.
false Os registos de conflito são armazenados no servidor que se perdeu na resolução de conflitos. Se alterar esta propriedade, os Assinantes existentes devem ser reinicializados.
compress_snapshot true O snapshot numa pasta alternativa de snapshots é comprimido no formato CAB. O snapshot na pasta de snapshots padrão não pode ser comprimido. Alterar esta propriedade requer um novo snapshot.
false Por defeito, o snapshot não está comprimido. Alterar esta propriedade requer um novo snapshot.
conflict_logging publisher Os registos de conflito são armazenados no Publisher.
subscriber Os registos de conflito são armazenados no Assinante que causou o conflito. Não é suportado para assinantes do SQL Server Compact.
both Os registos de conflito são armazenados tanto no Publisher como no Subscritor.
conflict_retention Uma informação que especifica o período de retenção, em dias, durante o qual os conflitos são retidos. Definir conflict_retention para 0 significa que não é necessário resolver conflitos.
description Descrição da publicação.
dynamic_filters true A publicação é filtrada com base numa 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 Protocolo de Transferência de Ficheiros (FTP) pode ser usado para transferir os ficheiros snapshot para um Assinante. Os ficheiros de sincronização para a publicação são colocados no C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp diretório.
false A publicação não está ativada para a Internet.
ftp_address O endereço de rede do serviço FTP para o Distribuidor. Especifica onde os ficheiros snapshot de publicação são armazenados.
ftp_login O nome de utilizador usado para se ligar ao serviço FTP.
ftp_password A palavra-passe do utilizador usada para se ligar ao serviço FTP.
ftp_port O número da porta do serviço FTP para o Distribuidor. Especifica o número da porta TCP do site FTP onde os ficheiros snapshot de publicação são armazenados.
ftp_subdirectory Especifica onde os ficheiros snapshot são criados se a publicação suportar a propagação de snapshots usando FTP.
generation_leveling_threshold int Especifica o número de alterações contidas numa geração. Uma geração é um conjunto de alterações que são entregues a um Publisher ou Assinante.
keep_partition_changes true A sincronização é otimizada, e apenas os Assinantes que têm linhas nas partições alteradas são afetados. Alterar esta propriedade requer um novo snapshot.
false A sincronização não está otimizada, e as partições enviadas aos Assinantes são verificadas quando os dados mudam numa partição. Alterar esta propriedade requer um novo snapshot.
max_concurrent_merge Um int que representa o número máximo de processos de fusão concorrentes que podem ser executados contra uma publicação. Se 0, não há limite. Se mais do que este número de processos de merge estiverem agendados para correr ao mesmo tempo, os trabalhos em excesso são colocados numa fila até que um processo de merge atual termine.
max_concurrent_dynamic_snapshots Um int que representa o número máximo de sessões de snapshot para gerar um snapshot de dados filtrado que pode correr simultaneamente contra uma publicação de merge que utiliza filtros de linhas parametrizados. Se 0, não há limite. Se mais do que este número de processos snapshot estiverem agendados para correr ao mesmo tempo, os trabalhos excedentes são colocados numa fila até que um processo de fusão atual termine.
post_snapshot_script Especifica um ponteiro para a localização de um .sql ficheiro. O Distribution Agent ou Merge Agent executa o script pós-snapshot depois de todos os outros scripts de objeto replicados e dados terem sido aplicados durante uma sincronização inicial. Alterar esta propriedade requer um novo snapshot.
pre_snapshot_script Especifica um ponteiro para a localização de um .sql ficheiro. O Merge Agent executa o script pré-snapshot antes de qualquer um dos scripts de objeto replicados ao aplicar um snapshot num Assinante. Alterar esta propriedade requer um novo snapshot.
publication_compatibility_level 100RTM SQL Server 2008 (10.0.x)
90RTM SQL Server 2005 (9.x)
publish_to_activedirectory true Este parâmetro está obsoleto e é mantido para compatibilidade retroativa dos scripts. Já não pode adicionar informação de publicação ao Active Directory.
false Remove a informação de publicação do Active Directory.
replicate_ddl 1 As instruções da Linguagem de Definição de Dados (DDL) executadas no Publisher 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 guardar alterações para a publicação dada. Se a subscrição não estiver sincronizada dentro do período de retenção, e as alterações pendentes recebidas foram removidas por uma operação de limpeza no Distribuidor, a subscrição expira e deve ser reinicializada. O período máximo permitido de retenção é o número de dias entre 31 de dezembro de 9999 e a data atual.

Nota: O período de retenção para publicações fundidas 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 Os ficheiros snapshot são armazenados na pasta de snapshots predefinida.
false Os ficheiros snapshot são armazenados na localização alternativa especificada por alt_snapshot_folder. Esta combinação especifica que os ficheiros snapshot são armazenados tanto na localização padrão como na alternativa.
snapshot_ready true Está disponível um resumo da publicação.
false O snapshot da publicação não está disponível.
status active A publicação está ativa.
inactive A publicação está inativa.
sync_mode native ou

bcp native
A 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 em modo de caracteres e cópia em massa de todas as tabelas é usada para o snapshot inicial, que é necessário para todos os Assinantes que não sejam do SQL Server.
use_partition_groups

Nota: Depois de usar grupos de partições, se voltar a usar setupbelongs, e definir use_partition_groups=false , changemergearticleisto pode não ser corretamente refletido após uma captura instantânea. Os gatilhos gerados pelo snapshot são compatíveis com grupos de partições.

A solução alternativa para este cenário é definir o estado para Inativo, modificar o use_partition_groups, e depois definir o estado para Ativo.
true A publicação utiliza partições pré-computadas.
false A publicação não utiliza partições pré-computadas.
validate_subscriber_info Lista as funções que estão a ser usadas para recuperar a informação do assinante. Depois, valida os critérios de filtragem dinâmica usados pelo Assinante para verificar se a informação está particionada de forma consistente.
web_synchronization_url Valor padrão do URL da Internet usado para a sincronização Web.
NULL (padrão) Devolve a lista de valores suportados para @property.

@force_invalidate_snapshot [ = ] force_invalidate_snapshot

Reconhece que a ação tomada por este procedimento armazenado pode invalidar um snapshot 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 detetar que a alteração requer um novo snapshot, ocorre um erro e não são feitas alterações.

  • 1 especifica que alterar a publicação pode invalidar o instantâneo. Se existirem subscrições existentes que requerem um novo snapshot, dá permissão para que o snapshot existente seja marcado como obsoleto e para que um novo snapshot seja gerado.

Consulte a secção de Observações para as propriedades que, quando alteradas, exigem a geração de um novo snapshot.

@force_reinit_subscription [ = ] force_reinit_subscription

Reconhece que a ação tomada por este procedimento armazenado pode exigir a reinicialização das subscrições existentes. @force_reinit_subscription é bit, com um padrão de 0.

  • 0 especifica que alterar a publicação não exige que as subscrições sejam reiniciadas. Se o procedimento armazenado detetar que a alteração requer a reinicialização das subscrições existentes, ocorre um erro e não são feitas alterações.

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

Consulte a secção de Observações para as propriedades que, quando alteradas, exigem que todas as subscrições existentes sejam reinicializadas.

Valores de código de retorno

0 (sucesso) ou 1 (fracasso).

Remarks

sp_changemergepublication é usado na replicação por fusão.

Alterar as seguintes propriedades requer que seja gerado um novo snapshot. 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)80SP3
  • pre_snapshot_script
  • snapshot_in_defaultfolder
  • sync_mode
  • use_partition_groups

Alterar as seguintes propriedades requer que as subscrições existentes sejam reinicializadas. 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 SQL Server deve já estar criado no Active Directory.

Examples

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

Permissions

Apenas os membros do papel fixo de servidor administrador do sistema ou db_owner papel fixo de base de dados podem executar sp_changemergepublication.