sp_changemergepublication (Transact-SQL)
Altera as propriedades de uma publicação de mesclagem. Esse procedimento armazenado é executado no Publicador, no banco de dados de publicação.
Sintaxe
sp_changemergepublication [ @publication= ] 'publication'
[ , [ @property= ] 'property' ]
[ , [ @value= ] 'value' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
Argumentos
[ @publication=\] 'publication'
O nome da publicação. publication é sysname, sem padrão.[ @property=\] 'property'
A propriedade a ser alterada de uma determinada publicação. property é sysname e pode ser um dos valores listados na tabela a seguir.[ @value=\] 'value'
O novo valor da propriedade especificada. value é nvarchar(255) 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
Dados de uma partição antiga serão deixados no Assinante, onde as alterações feitas nesses dados no Publicador não serã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
Não são permitidas assinaturas pull para a publicação determinada.
allow_push
true
São permitidas assinaturas push para a publicação determinada.
false
Não são permitidas assinaturas push para a publicação determinada.
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 essa 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 um parceiro padrão de sincronização alternativo para fazer a sincronização com esse Publicador.
allow_web_synchronization
true
As assinaturas podem ser sincronizadas pelo HTTP.
false
As assinatura não podem ser sincronizadas pelo HTTP.
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 desta propriedade requer um novo instantâneo.
false
Por padrão, o instantâneo 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. Sem suporte para Assinantes do SQL Server Compact 3.5 SP2.
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, no qual os conflitos são retidos. A definição de 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 para a publicação são colocados no diretório C:\Arquivos de Programas\Microsoft SQL Server\MSSQL\Repldata\ftp.
false
A publicação não está habilitada para a Internet.
ftp_address
O endereço de rede do serviço de 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 de 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 contido em uma geração. Uma geração é uma coleção de alterações entregues a um Publicador ou Assinante. Para obter mais informações, consulte Como a replicação de mesclagem rastreia e enumera alterações.
keep_partition_changes
true
A sincronização é otimizada e somente Assinantes com linhas nas partições alteradas são afetados. A alteração desta propriedade requer um novo instantâneo.
false
A sincronização não será otimizada e as partições que são enviadas a todos os Assinantes serão verificadas quando os dados forem alterados em uma partição. A alteração desta propriedade requer um novo instantâneo.
max_concurrent_merge
Esta é uma int que representa o número máximo de processos de mesclagem simultâneos que podem ser executados em uma publicação. Se for 0, não há limite. Se um número maior de processos de mesclagem for agendado para execução ao mesmo tempo, os trabalhos em excesso serão enfileirados e esperarão até que um processo de mesclagem atual seja concluído.
max_concurrent_dynamic_snapshots
Este é um int que representa o número máximo de sessões de instantâneo simultâneas para gerar instantâneos de dados filtrados que podem ser executados simultaneamente em uma publicação de mesclagem que usa filtros de linha com parâmetros. Se 0, não há nenhum 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 arquivo .sql. O Distribution Agent ou Merge Agent 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 arquivo .sql. O Merge Agent 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
90RTM
SQL Server 2005
80SP3
SQL Server 2000 SP3
80SP2
SQL Server 2000 SP2
80SP1
SQL Server 2000 SP2
80RTM
SQL Server 2000
70 SP4
SQL Server 7.0 SP4
70SP3
SQL Server 7.0 SP3
70SP2
SQL Server 7.0 SP2
70SP1
SQL Server 7.0 SP1
70RTM
SQL Server 7.0
publish_to_activedirectory
true
Esse parâmetro foi preterido e tem suporte somente 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
Instruções DDL não são replicadas.
retention
Este é um int que representa o número de unidades retention_period_unit para as quais salvar alterações para a publicação determinada. Se a assinatura não estiver sincronizada dentro do período de retenção e as alterações pendentes que por ventura tenha recebido tiverem sido removidas por uma operação de limpeza no Distribuidor, a assinatura irá expirar e deverá ser reiniciada. 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çãoO período de retenção para publicações de mesclagem tem um período de tolerância de 24 horas para acomodar Assinantes em fusos horários diferentes.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
Arquivos de instantâneo são armazenados no local alternativo, especificado por alt_snapshot_folder. Essa combinação especifica que os arquivos de instantâneo serão armazenados nos locais padrão e alternativo.
snapshot_ready
true
Instantâneo disponível para a publicação.
false
Instantâneo não disponível para a publicação.
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
Saída de programa de cópia em massa em modo de caractere de todas as tabelas é usada para o instantâneo inicial, que é exigido de todos os Assinantes não-SQL Server.
use_partition_groups
ObservaçãoDepois de usar partition_groups, se quiser reverter usando setupbelongs e definir use_partition_groups=false em changemergearticle, isso pode não se refletir corretamente depois de tirar um instantâneo. Os gatilhos que são gerados através do instantâneo são compatíveis com grupos de partição. A solução para este cenário é definir o status como Inactive, modificar o use_partition_groups e, depois, definir o status como Active.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. Depois, valida o critério de filtro dinâmico que está sendo usado pelo Assinante para verificar se as informações serão particionadas consistentemente.
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
Reconhece que a ação tomada por esse procedimento armazenado pode invalidar um instantâneo existente. force_invalidate_snapshot é um bit, com um padrão 0.0 especifica que alterações na publicação não invalidam 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 alterações na publicação podem invalidar o instantâneo. Se houver assinaturas existentes que exigem um novo instantâneo, esse valor dará permissão para que o instantâneo existente seja marcado como obsoleto e um novo instantâneo seja gerado.
Consulte a seção Comentários para obter as propriedades que, quando alteradas, requerem a geração de um novo instantâneo.
[ @force_reinit_subscription = ] force_reinit_subscription
Reconhece que a ação tomada por esse procedimento armazenado pode requerer que as assinaturas existentes sejam reinicializadas. force_reinit_subscription é um bit, sem um padrão 0.0 especifica que alterações na publicação não exigem que as assinaturas sejam reiniciadas. Se o procedimento armazenado detectar que a alteração irá requerer que as assinaturas existentes sejam reiniciadas, ocorrerá um erro e nenhuma alteração será feita.
1 especifica que alterações na publicação fazem com que assinaturas existentes sejam reinicializadas e permite que ocorra a reinicialização da assinatura.
Consulte a seção Comentários para as propriedades que, quando alteradas, requerem que todas as assinaturas existentes sejam reiniciadas.
Valores de código de retorno
0 (êxito) ou 1 (falha)
Comentários
sp_changemergepublication é usado em replicação de mesclagem.
Alterar as propriedades a seguir requer que um instantâneo novo seja gerado. Você deve especificar um valor manual 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 manual 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 já deverá ter sido criado no Active Directory.
Exemplo
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
-- Disable DDL replication for the publication.
USE [AdventureWorks2008R2]
EXEC sp_changemergepublication
@publication = @publication,
@property = N'replicate_ddl',
@value = 0,
@force_invalidate_snapshot = 0,
@force_reinit_subscription = 0;
GO
Permissões
Só membros da função de servidor fixa sysadmin ou da função de banco de dados fixa db_owner pode executar sp_changemergepublication.
Consulte também